我有这样的模特:
import DS from 'ember-data';
var Post = DS.Model.extend({
title: DS.attr('string'),
downloads: DS.hasMany('download')
});
export default Post;
并且只有在帖子中至少有1个或更多下载时才会显示下载部分。
我尝试在Controller中引入计算属性,但无法从那里访问模型。
我还能做什么?
编辑:这是控制器显示我想要做的事情:import Ember from 'ember';
export default Ember.ObjectController.extend({
hasDownloads: function(){
console.log(this.get('downloads')) // <- undefined
return true
}.property('model'),
})
EDIT2:上面的Object-controller没有路由,因为它使用`{{render&#34; post&#34;}}呈现。这是一个示例模板。
<ul class="posts">
{{#with model as post}}
{{render "post"}}
{{/with}}
</ul>
那将是它的路线:
import Ember from 'ember';
export default Ember.Route.extend({
model: function(params) {
return this.store.find('post', params).then(function(posts) {
return posts.get('firstObject');
});
}
});
答案 0 :(得分:1)
使用model.downloads
:
import Ember from 'ember';
export default Ember.ObjectController.extend({
hasDownloads: function(){
console.log(this.get('model.downloads'))
return true
}.property('model.@each'),
})
根据您使用的Ember版本,控制器的代理行为将不再有效。此外,更改属性以便在添加和删除下载时更新它。