假设我有一个JSON数据数组,例如:
[ {"name":"parijat","age":28},
{"name":"paul","age":28},
{"name":"steven","age"27},
...
]
这是我模型的一部分,这个模型设置如下:
App.UserRoute = Ember.Route.extend({ 模型:函数(){ 返回App.User.FIXTURES; //定义如上 } });
我想从这个JSON数组中获取独特的年龄并将它们显示在我的模板中,所以我参考了计算属性文章并阅读了一些关于如何枚举Ember Enumerables的内容,最终得到了这个:
App.UserController = Ember.ArrayController.extend({
ages:function(){
var data = this.get('content');
var ages = data.filter(function(item){
return item.age;
});
}.property('content');
});
现在上面的控制器代码不正确,但问题是如果我在里面添加一个console.log语句,它甚至不会进入data.filter()方法。 IMO,它通常应该是控制台日志记录,因为存在App.Users.FIXTURE。我尝试使用不起作用的属性('content。@ each')。也没有将 this.get('content')更改为 this.get('content。@ each')或 this.get('content。@ each ')。toArray() {spat a error}。
不确定在这里做什么或者我完全错过了什么。
答案 0 :(得分:0)
过滤器用于减少项目数量,而不是用于映射。
您可以使用data.mapBy('age')来获取您的年龄数组:
ages:function(){
return this.get('content').mapBy('age');
}.property('content.@each')
或在你的把手功能中你可以使用每个助手:
{{#each item in controller}}
{{item.age}}
{{/each}}