我试图理解如何创建一个绑定或计算属性,它是我拥有的对象数。我可以通过以下方式获取号码(我认为):
App.MyObject.all().get("length")
当我在函数内创建一个控制器属性时,它不会随着更多对象的下载而更新。
numOfMyObjects: function(){
return App.MyObject.all().get("length");
}.property()
现在我在我的ApplicationController中有这个,但它只显示0。
我想知道如何为所有对象执行此操作,然后还知道如何对已过滤的对象集执行此操作。
感谢。
答案 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}}