【发布时间】:2017-08-25 22:06:25
【问题描述】:
我在使用 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?
【问题讨论】:
标签: ember.js