我有一个Phone
模型。我想在我的应用程序中缓存所有手机:
cachePhones : function () {
this.set('phones', this.Phone.find());
},
并获取我有可用手机的国家:
getCountries : function () {
var phones = this.get('phones.content');
var countries = new this.dataSet(), country;
console.log('phones=%o', phones.length);
for (var index = 0, length = phones.length; index < length; index++) {
country = phones[index].record.get('country');
console.log('Adding %o', country);
countries.add(country, true);
}
console.log('countries=%o', countries.keys());
return countries.keys();
},
(dataSet
只是javascript中的一个集合实现)
我不确定这是走路的正确方式ArrayController
:
- 我真的需要访问
content
吗? - 我真的需要访问
record
吗?
这感觉就像是在 ember 内部进行黑客攻击。在此之前我已经尝试过:
var phones = this.get('phones');
var countries = new this.dataSet(), country;
for (var index = 0, length = phones.length; index < length; index++) {
country = phones[index].country;
countries.add(country, true);
}
但它根本不起作用。走路的规范方式是ArrayController
什么?