[英]Ember RSVP Hash not updating controller content
我正在尝试在Ember的一条路由中处理多个控制器。 这种回应似乎是行之有效的方法,但是很难使它起作用。 这是一个无法正常工作的简单示例:
App.IndexRoute = Ember.Route.extend({
model: function() {
myData = [1,2,3];
return Em.RSVP.hash({
docs1: myData,
docs2: myData
});
},
setupController: function(controller, model) {
controller.set('model', model.docs1);
this.controllerFor('documents').set('model', model.docs2);
}
});
App.DocumentsController = Ember.ArrayController.extend({
count: function() {
return this.get('length');
}.property('@each'),
});
App.IndexController = Em.ArrayController.extend({
count: function() {
return this.get('length');
}.property('@each'),
});
还有一个显示结果的JSBin:
http://jsbin.com/wavigada/1/edit
您可以看到IndexController报告正确的计数为3,但是没有设置DocumentsController。
谁能帮我吗?
您将需要包括documents
控制器,其内容您在填充setupController
在你IndexController
通过needs
:
App.IndexController = Em.ArrayController.extend({
needs: ['documents'],
count: function() {
return this.get('length');
}.property('@each'),
});
然后,您需要将模板更改为:
<script type="text/x-handlebars" data-template-name="index">
{{count}}
{{render 'documents' controllers.documents}}
</script>
请注意,仅放置{{render 'documents' controllers.documents}}
(就像您在问题中所做的那样)是指当前模型的documents
属性,该属性不存在。
请参阅: http : //jsbin.com/wavigada/6/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.