(注: Ember バージョン 1.0.0-rc.3 を使用しています)
ビューを使用して「クリック」をキャッチしようとしている{{linkTo}}
ので、新しいテンプレートをロードするだけでなく、追加の操作 (基本的にはサイドバーのユーザーのリストをスクロール) を行うことができます。私はこれに比較的慣れていないので(ただし、ドキュメントを読んだだけです!)、次のようにすればうまくいくと思いました。
「ユーザー」テンプレート:
{{#each user in users}}
{{#view App.ClickView}}
{{#linkTo user user}}{{ user.name }}{{/linkTo}}
{{/view}}
{{/each}}
ビューコード:
App.ClickView = Ember.View.extend({
click: function(evt) {
// do stuff
}
});
コンテキストについては、レイアウト テンプレート:
<div id='sidebar'>
{{#each user in users}}
{{#linkTo user user}}{{ user.name }}{{/linkTo}}
{{/each}}
</div>
<div id='main'>
{{ outlet }}
</div>
users テンプレートを参照すると、それぞれ{{linkTo}}
がビューに含まれていることがわかります。その {{linkTo}} をクリックすると、バブルが発生し、ビュー ( App.ClickView
) にキャッチされることを期待しています。残念ながら、そうではありません。クリックが発生したときに、何らかの形でビューにバブルアップされていないよう{{linkTo}}
です...どうすればよいですか?
注#1:{{linkTo}}
( div#mainのみ!div#sidebarのものを置き換えるつもりはありません)を<a>
要素に置き換えると、機能し、クリックがビューに引っ掛かります。ただし、このルートをたどりたいかどうかはよくわかりません ( {{linkTo}}
! の機能を複製する必要があります)。そして、これを行うためのより良い方法があるべきだと考えています。ある?
注#2:* UserRouteのrenderTemplate()に意図した「何かをする」コードを入れることができることも認識していますが、それに関する問題は、そのルートへのすべてのリンクに対して効果が発生することです(サイドバーにあるもの - これは私が望むものではありません)。特定のs、特に div#main のs に対してのみスクロールをトリガーしたい。{{linkTo}}
{{linkTo}}