我遇到了Ember中的计算属性问题。无法获取计算属性内数组的值
有问题的产品timeZones
,其设置是这样的:
import Ember from 'ember';
export default Ember.Route.extend({
model(params) {
return Ember.RSVP.hash({
account: this.store.findRecord('account', params.id),
timeZones: this.store.findAll('time-zone'), <------------ timeZones
users: this.store.query('user', { by_account_id: params.id })
});
},
setupController(controller, model) {
this._super(controller, model.account);
controller.set('users', model.users);
controller.set('timeZones', model.timeZones);
}
});
然后,我有一些所谓selectedTimeZone
看起来像这样:
selectedTimeZone: Ember.computed('location.timezone', 'timeZones', function() {
console.log(this.get('timeZones'));
const timeZoneName = this.get('location.timezone');
var result;
this.get('timeZones').forEach(function(timeZone) {
if (timeZone.name === timeZoneName) {
console.log('yes'); // <------------------- never gets here
result = timeZone;
}
});
return result;
}),
的问题是,this.get('timeZones')
是不是真的在组件内部可访问。 timeZones
使它成为模板就好了。我正在使用timeZones
填充下拉菜单。但是当我console.log
它,它只是作为Class
来通过。
我怎样才能得到这个计算属性内的timeZones
?