簡単な質問。ember.jsを使用したサイトナビゲーション(ルーティングaprtではなく単純なナビゲーションバー)の処理は少し複雑であることがわかりました。したがって、このaprtをjQueryでコーディングし、履歴をロケーションURLにプッシュして、Ember.jsがこの変更を検出し、ルーターがアクションを実行することを期待します。
シナリオ :
1)ember.jsはrootElementにDIVを使用し、navbarは本文で宣言されます。
<body>
<div id="nav">
<ul><li><a>Item1</a></li></ul>
</div>
<div id="rootEmberApp"></div>
</body>
2)次に、jQueryスクリプトがnav divのリンク(item1)にバインドされ、変更をURLにプッシュしますが、伝播を停止せずにデフォルトのアクションを防ぎます(すべてのスクリプトをリロードしたくありませんでした)。何かのようなもの :
$(document).ready(function(){
$("#navigation a").click(function(event){
App.router.location.setURL('/ember/listItems');
event.preventDefault();
});
3)この時点でEmber.jsが起動し、アクションを実行することを期待していました。
私は成功しませんでした。ばかげていますか?それを行う方法はありますか?
どうもありがとう。
更新1:回答ありがとうございます。はい、あなたが正しい。ナビゲーションバーについて試したり見つけたりした解決策に完全に満足していませんでした。todoMVCの例とそのCollectionViewの使用法をもう一度見てみましょう。初心者の観点からは、CollectionViewはビューを記述(宣言)するのに適した方法であると同時に、読むのも簡単ではありません(ビューが純粋なhtmlで記述され、jsがjQueryにバインドされていると簡単です。 )。再度、感謝します