我正在尝试遍历从另一个控制器获取的内容并使用forEach()
. 但是,这不起作用,并且任何在forEach
循环中获取属性的尝试都会返回undefined
。
所以这就是我试图做的事情:
- 我正在获取内容
this.get("controllers.index.arrangedContent")
。
内容是使用本地存储适配器存储的记录数组。 我的模型:
App.Data = DS.Model.extend({ name: DS.attr('string') });
在我的控制器中:
App.StartController = Ember.ObjectController.extend({
needs: 'index',
alert: function() {
// get the "content" from the IndexController;
var names = this.get("controllers.index.arrangedContent");
var formattedNames = [];
names.forEach(function(item) {
var name = item.name; // <--returns "undefined"
name += "!";
formattedNames.push(name);
});
alert(formattedNames[0] );
}
});
问题:有没有办法在forEach
循环中访问属性“名称”,返回存储在模型中的正确值?
注意:首先我认为这将是本地存储适配器上的一个错误,所以我在后端的“夹具适配器”上尝试了同样的事情,但这也不起作用。
但是,如果我在路由器上硬编码一些模型实例,例如:
App.IndexRoute = Ember.Route.extend({
model: function() {
return [Ember.Object.create({id: 523, name: "John"}),
Ember.Object.create({id: 534, name: "Warren"}),
Ember.Object.create({id: 234, name: "Katy" })
];
}
});
在forEach
循环中获取 name 属性有效。为什么在使用 ember-data 时这不起作用?
任何提示/建议都非常感谢!谢谢!