繁体   English   中英

Ember RSVP Hash不更新控制器内容

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM