繁体   English   中英

循环Ember.js承诺

[英]Looping over an Ember.js promise

我试图循环我认为是Ember的承诺,但我似乎得到的只是一个对象,它应该是一个数组。

jsbin: http ://emberjs.jsbin.com/qakine/1/edit

如果我只是循环模板中的项目,那么我没有问题,但我希望能够与我的控制器中的数组项进行交互。 任何帮助赞赏。

这里有很多东西,让我看看我是否能记住它们:

当您在资源下有路由时,该路由的路由和控制器应采用其父级的名称。

App.Router.map(function() {
  this.resource("parent", function(){
    this.route("child");
  });
});

App.ParentChildRoute...

App.ParentChildController...

把手无法从您的控制器访问正常功能,这应该转换为计算属性。

App.ParentChildController = Ember.ObjectController.extend({
  middleNames: function(){
    ...
  }.property('middles.[]')
});

命名区分大小写

{{#each name in middlenames}}

应该

{{#each name in middleNames}}

示例: http//emberjs.jsbin.com/cowibi/1/edit

我创建了一个基于你的新例子,以便清楚地表达出来。 你可以在这里查看:

http://emberjs.jsbin.com/hokabe/4/edit

对于Ember route的model钩子,如果返回值是promise,则路由将等待promise的解析并将解析后的值传递给controller的model属性。

App.Parent实例的middles属性返回一个承诺(实际上它是一个DS.PromiseArray实例),这将解决中段阵列(实际上它是一个DS.ManyArray实例)。

所以为了生孩子,你可以简单地这样做:

App.ParentMiddlesRoute = Ember.Route.extend({
  model: function() {
    return this.modelFor('parent').get('middles');
  }
});

请注意, modelFor参数是路径名称,但不是模型名称。 这意味着“从给定路线获取模型”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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