如何通过 Angular ui-router 在 ons-navigator 中设置 ons-sliding-menu?

How to set ons-sliding-menu inside ons-navigator via Angular ui-router?

我想通过 angular ui-routerons-navigator 中加载 ons-sliding-menu,但它不起作用。请查看我下面的代码,我在哪里做错了,为什么会这样,它既没有在控制台中显示任何错误,也没有显示它的工作。非常感谢您的帮助。

Angular :-

var app = angular.module('myApp', ['onsen', 'ui.router']);

app.config(function($stateProvider, $urlRouterProvider) {

    $urlRouterProvider.otherwise('/slider');

    $stateProvider      
        .state('navigator', {
            abstract: true,
            url: '/navigator'
        })
        .state('navigator.slider', {
            parent: 'navigator',
            url: '/slider',
            onEnter: ['$rootScope', function($rootScope) {
                $rootScope.myNavigator.resetToPage('html/slider.html');
            }]
        })
    ;

});

HTML:-

<body ng-app="myApp">
    <ons-navigator title="Navigator" var="myNavigator"></ons-navigator>

    <ons-template id="html/slider.html">
        <ons-sliding-menu menu-page="html/menu.html" 
                          side="left" 
                          main-page="html/main.html" 
                          var="myMenu" type="reveal" 
                          max-slide-distance="260px" 
                          swipeable="true">
        </ons-sliding-menu>
    </ons-template>
</body>

看起来 ui-如果 index.html 中没有 ui-sref,路由器将无法正常工作。 将下一个哑巴 div 添加到您的 index.html 使其工作。

<div style="height: 0; width: 0" ui-sref="navigator"></div>

只要它存在,它指向的状态并不重要。老实说,我不知道原因,但它适用于此解决方法。

顺便说一下,添加一个 ons-page 包裹你的 ons-sliding-menu 否则导航器会冲你大喊大叫。

希望对您有所帮助!