2012-08-12 20 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