所以这就是我所做的(我也使用angular-mobile-nav
and angular-snap.js
)。
这是我的 HTML 代码
<body ng-app="MyApp">
<div snap-drawer>
<ul class="list">
<li ng-repeat="item in sidebar.items" ng-i18next="{{item.name}}" ng-tap="snapper.close();go(item.link)"></li>
</ul>
</div>
<div id="container" snap-content snap-options="snapOpts">
<div mobile-view=""></div>
</div>
</body>
请注意,这go()
是更改页面的功能,我正在使用它ng-i18next
来翻译我的项目。也是ng-tap
一个监听触摸事件而不是鼠标事件的指令。Angular >1.1.5 有一个移动模块,所以ng-tap
不再需要我的指令。
通过使用,$rootScope
我可以将项目放在侧边栏中:
$rootScope.sidebar = {
items: [
{
name: 'item_one',
link: 'page_one'
},
...
]
};
因此,如果您想更改侧边栏中的项目,只需在控制器中覆盖$rootScope.sidebar
(not $scope.sidebar
) ;)
如果您不喜欢两个动画同时发生,您可以编写一个函数,等待侧边栏关闭然后更改页面。它可能看起来像这样:
$rootScope.waitThenGoTo = function (page, time) {
time = time || 200;
$timeout(function () {
$navigate.go(page);
}, time);
};
如果您仍有疑问,请发表评论。我会尽快更新这个答案。