【发布时间】:2015-08-31 16:56:27
【问题描述】:
我在 Ember 应用程序中转换模型对象时遇到问题。
我有一个 calendar 路由,它定义了这样的模型。
this.store.findAll('competency');
我正在尝试在定义为属性的控制器方法calendarItems 中转换由此返回的数据。
我想做的是获取我的模型并在其上调用 map 函数,转换对象并将其作为属性返回。
我已将控制器更改为 ArrayController 以允许调用 Enumberable 方法,但仍然没有运气。该功能在我可以this.get('model').map时出现
任何想法我在哪里绊倒?也许我的方法是出路,但基本上我只想转换模型并将该数据呈现给模板。
提前致谢! 瑞恩
编辑
这是我的转换逻辑,但模板中记录的数组只是 []。
export default Ember.Controller.extend({
calendarItems: Ember.computed('model', function () {
return this.get('model').map(function(competency) {
return 1;
}, this);
})
});
console.log(this.get('model').get('length'));
返回 0,这让我假设我没有来自商店的模型项目来迭代一个可以解释空白数组的模型项目。但是,如果我在模板中放置 {{#each}} 以打印出模型,我将收到 3 个模型。
编辑
日历路线
model:
return this.store.findAll('competency');
}
日历控制器
calendarItems: Ember.computed('model', function () {
return this.get('model').map(function(competency) {
return 1;
}, this);
})
日历模板
{{log calendarItems}}
【问题讨论】:
-
您需要提供您在
calendarItems中的转换逻辑,否则您无法知道您做错了什么。此外,store.findAll已经返回一个 Enumerable,因此将其设为ArrayController是有害的,因为它们在 Ember 2.0 中已被删除。 -
我已在主要问题正文中添加了 calendarItems 转换,但仍收到一个空白数组。
-
console.log(this.get('model').get('length'));在方法中返回 0 所以我假设我的模型设置可能不正确?
标签: ember.js ember-data