2012-08-12 49 views
4

當我做ember.js W/connectOutlet

var bob = App.MyModel.create().setProperties({ name: "bob marley" }); 
router.get('applicationController').connectOutlet('my', bob); 

MyModel實例成爲MyController實例的content屬性模板背景。根據我在指南中閱讀的內容,控制器實例將成爲由MyView呈現的車把模板的上下文。

這是否意味着我總是必須在模板中使用content.作爲模型屬性的前綴?

<h1>{{content.name}}</h1> 

有什麼我失蹤或是這樣做的正確方法嗎?

回答

2

如果App.MyController延伸Ember.ObjectController,那麼您應該可以直接使用{{name}}。這是因爲Ember.ObjectController延伸了Ember.ObjectProxy,因此不需要參考content

但是,如果您使用的是Ember.Controller,則必須像您說的那樣在屬性前加content.。有關更多詳細信息,請參閱最近提交的@ trek's controller documentation

+0

不應該直接使用Ember.Controller,但最好使用'concrete'classes = ObjectController或ArrayController。 – 2012-08-13 12:27:48

+0

我想,除了你的'App.ApplicationController'的情況。我想知道是否會有內置的'Ember.ApplicationController'? – dechov 2012-08-13 13:26:40

+0

@pauldechov它會通過'Controller'提供哪些附加功能? – 2012-08-13 13:51:33