我有一個名爲sample的模板,我正在根據按鈕更改控制器中的屬性顯示。現在我希望控制器在每次渲染模板時重置屬性。目前,即使我轉到「下一個」模板並返回,如果按下樣品上的按鈕,屬性顯示仍然爲真。我想改變這種行爲,屬性顯示默認爲false。我知道我可以通過定義一個視圖並使用didInsertElement鉤子來做到這一點,但這是唯一的方法嗎? Ember.js網站說,在Ember.js視圖通常僅適用於以下原因產生:每次在Ember中呈現模板時評估控制器屬性
當你需要的用戶事件 的複雜處理當你想創建一個可重複使用的組件
和我不要做任何上述事情。下面是一些示例代碼:
<script type="text/x-handlebars" data-template-name="sample">
{{#if show}}
Showing stuff
{{/if}}
<button {{action changeShow}}>Change</button>
{{#link-to 'next'}} Next {{/link-to}}
</script>
<script type="text/x-handlebars" data-template-name="next">
Hello
{{#link-to 'sample'}}Back{{/link-to}}
</script>
App.SampleController=Ember.Controllers.Extend{(
show:false,
actions:{
changeShow:function(){
this.controllerFor('sample').set('show',true);
}
}
)};
感謝您的回答。這對我有用。我還嘗試使用afterRender掛鉤在模板加載後執行某些操作,但不起作用。是否有任何其他的鉤子可以用於模板渲染後的事情? –