これが私がやったことです(私は and も使用angular-mobile-nav
しています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
(ではなく$scope.sidebar
) オーバーライドするだけです ;)
2 つのアニメーションが同時に発生するのが気に入らない場合は、サイドバーが閉じるのを待ってからページを変更する関数を作成できます。次のようになります。
$rootScope.waitThenGoTo = function (page, time) {
time = time || 200;
$timeout(function () {
$navigate.go(page);
}, time);
};
まだ質問がある場合は、コメントしてください。この回答をできるだけ早く更新しようとします。