玩弄燼,我發現有時模型存儲在控制器的content
屬性,有時該模型也可以在控制器上直接使用。但是,我不明白,當情況如此。從模板訪問模型
讓我通過組裝我的ember MVC時找到的示例來解釋它。
設置A - 起始
- 我定義的自定義對象
Member
,對應MemberRoute
,MemberView
類和模板的名稱member
。 - 的
Member
對象具有諸如id
,nickname
等 - 注一些屬性:無形式
MemberController
的控制器被定義,從而通過燼的慣例,它提供了它自己的控制器。
設定B - 定製
- 一樣設置一個,但現在有定義的
MemberController
包含從模板中引發的一些操作方法。
奇怪行爲(分別是什麼我不完全理解)
- 在設置A,可以參考我的
Member
的直接{{id}}
或{{nickname}}
屬性。 - 在設置B,我必須使用
{{content.id}}
或{{content.nickname}}
由於Ember的文檔中記載,MemberView
確實
setupController : function(controller, member) {
controller.set('content', member);
},
所以,可能有人幫助我理解爲什麼差異和區別在哪裏是什麼?目前,我的猜測是,要麼
- ,模板的背景是不同的(可能是一個代碼塊在控制器的設置丟失?)
或
- 由自動提供的默認控制器,它具有一些額外的魔法,不能直接用於定製控制器。
任何幫助理解這一點是高度讚賞。它已經花了我很長一段時間才能達到這一點。我首先想到它可能是由項目設置與requireJS引入的模塊化(嗯,我仍然認爲這可能會產生影響)。 Ember是v1.0pre4。
在此先感謝! Patrick
完美,謝謝邁克爾。這不僅是解釋,而且在我的代碼中出了什麼問題。我有'App.MemberController = Ember.Controller.extend({});'。至少這個錯誤讓我們更好地理解控制器。 thx再次!已經標記爲ph –