1
主要思想:在我的控制器成功更新模型上的屬性之後,我想調用一個關閉子視圖的view方法。Ember - 在控制器方法之後如何調用View方法
模板:
<a {{action showUpdate href=true target="view"}}>update</a>
{{#if view.isUpdate}}
{{#view App.UpdateView}}
...here is a form
<button {{action update}}>Send</button>
{{/view}}
{{/if}}
查看:
App.MainView = Ember.View.extend({
templateName: 'update',
isUpdate: false,
showUpdate: function() {
this.set('isUpdate', !this.get('isUpdate'));
}
});
App.UpdateView= Ember.View.extend();
控制器:
App.MainController = Ember.Controller.extend({
updateCon: function() {
do something
},
...
路由器:
update: function(router, evt) {
router.get('mainController').updateCon();
//router.get('mainController.view').showUpdate(); <-- doesnt work
}
所以我試圖在我的控制器做好之後在我的路由器中調用它,但它不起作用。
Cannot call method 'showUpdate' of null
這是正確的做法嗎?當是時:我錯過了什麼?否:當我的控制器執行某些操作時如何使視圖變形?
1。您的控制器不知道該視圖(它沒有提及它)。我認爲這在最近的一個發佈版中已經發生了變化。 2.爲什麼要在視圖中存儲屬性「isUpdate」?爲什麼不存儲在控制器中?這樣你可以在模板中使用{{#if isUpdate}},Ember會自動更新DOM。您的方法看起來很尷尬,因爲您嘗試手動更新視圖。 Ember中的常規方法是:更新模型,視圖自動反映更改。 – mavilein