绑定到对象的数量

时间:2013-02-16 23:09:34

标签: ember.js ember-data

我试图理解如何创建一个绑定或计算属性,它是我拥有的对象数。我可以通过以下方式获取号码(我认为):

App.MyObject.all().get("length")

当我在函数内创建一个控制器属性时,它不会随着更多对象的下载而更新。

numOfMyObjects: function(){
  return App.MyObject.all().get("length");
}.property()

现在我在我的ApplicationController中有这个,但它只显示0。

我想知道如何为所有对象执行此操作,然后还知道如何对已过滤的对象集执行此操作。

感谢。

1 个答案:

答案 0 :(得分:1)

你需要告诉Ember它应该观察哪些属性来触发numOfMyObjects方法。例如:

numOfMyObjects: function(){
  return App.MyObject.all().get("length");
}.property('myArray.length');

但是,这在你的情况下不起作用,因为你的控制器本身有App.MyObject,而你想要指示控制器应该代表哪个模型的适当路径。

这样您实际上不需要创建计算属性,因为您可以访问Handlebars中的model

请参阅我作为例子汇总的JSFiddle:http://jsfiddle.net/ESkkb/

代码的主要部分在于IndexRoute

App.IndexRoute = Ember.Route.extend({
    model: function() {
        return App.Cat.find();
    }
});

我们告诉IndexController它应该代表所有的猫。然后,一旦我们完成了,我们可以在我们的视图中显示猫,或者在我们的例子中,显示猫的数量:

Count: {{length}}