テンプレートに次のようなコードがあります。
{{#each items itemController="item"}}
itemController
いずれかの s のインスタンス内で兄弟 s への参照を取得する方法はありますitemController
か?
テンプレートに次のようなコードがあります。
{{#each items itemController="item"}}
itemController
いずれかの s のインスタンス内で兄弟 s への参照を取得する方法はありますitemController
か?
アイテム コントローラーは間もなく廃止されます (こちらを参照してを検索してくださいitemController
)。ユースケースの代わりに、次のようにコンポーネントを作成することをお勧めします。
App.XItemComponent = Ember.Component.extend({
classNames: ['item'],
actions: {
startEdit: function(){
this.set('beingEdited', true);
this.set('disallowEdits', true);
},
finishEdit: function(){
this.set('beingEdited', false);
this.set('disallowEdits', false);
}
}
});
<script type="text/x-handlebars" data-template-name="components/x-item">
{{ item }}
<button {{ action "startEdit" }} {{ bind-attr
disabled=disallowEdits}}>Edit</button>
{{#if beingEdited}}
<button {{ action "finishEdit" }}>Save</button>
{{/if}}
</script>
disallowEdits
コンポーネントが (コンポーネントが作成されたテンプレートのコントローラーを介して) 他のすべてのコンポーネントと共有するプロパティであり、beingEdited
誰とも共有されないローカル コンポーネント プロパティです。
その後、次のようにテンプレート内でコンポーネントを使用できます。
<script type="text/x-handlebars" data-template-name="index">
<ul>
{{#each item in model}}
<li>{{x-item item=item disallowEdits=disallowEdits }}</li>
{{/each}}
</ul>
</script>
完全な動作例はこちら
振り返ってみると、技術的には正しいが、実際には正しくないため、この回答を削除しています。