首先,对于JS中的OOP来说,我总是很棒,这对我来说是新的,所以对待我就像一个菜鸟。
我正在构建我的第一个ember.js应用程序而且我被困住了(不是第一次,但我会自己解开,虽然这很难)。
我有两个型号: 形式 条目
条目当然是(一对多)与表单的关系,因此每个表单都可以包含多个属性。
表单属性:
id : DS.attr( 'number' ),
title : DS.attr( 'string' ),
views : DS.attr( 'number' ),
conversion : DS.attr( 'number' ),
entries : DS.hasMany( 'entry' )
条目属性:
id : DS.attr( 'number' ),
parent_id: DS.belongsTo( 'form' )
现在,我有一个表格路径,它在表格视图中显示所有表格,每个表格行都有一些信息,如表格ID,名称等等,并且效果很好。
我想要做的是显示每个表单的条目数。我想我应该通过控制器做到这一点,所以现在这是我的控制器:
// Form controller
App.FormController = Ember.ObjectController.extend({
entriescount: function() {
var entries = this.get( 'store').find( 'entry' );
return entries.filterBy( 'parent_id', this.get( 'id' ) ).get( 'length' );
}.property( 'entries.@each.parent_id')
});
现在出于某种原因,当我在{{entriescount}}
循环中使用{{#each}}
时,这不返回任何内容。它也不会返回单一形式的路线。请注意,在这两种情况下,{{title}}都可以使用。
我想知道,我是否正确使用控制器,以及如何让控制器输出数据。
由于
答案 0 :(得分:0)
通过表单上的计算属性执行此操作。
类似于下面的entriesLength并将其用于显示:
App.YourForm = App.YourForm.extend
({
entriesLength: function () {
return this.get('entries').get('length');
}.property('entries')
});
此外,您还可以设置与灯具中条目的关系:
App.Form.FIXTURES = [
{
id : 1,
form_id : 1,
title : 'Order a Pizza',
views : 2,
conversion : 0,
entries: [3,4]
},