まず第一に、JS での OOP に関しては、私はまったくの初心者です。これは私にとって初めてのことなので、初心者のように扱ってください。
私は最初の ember.js アプリケーションを構築していますが、行き詰まっています (初めてではありませんが、自分で立ち往生するでしょう。これは難しいものです)。
私は 2 つのモデルを持っています: フォーム エントリ
エントリはもちろんフォームと (1 対多の) 関係にあるため、各フォームは同じ数のプロパティを持つことができます。
フォームのプロパティ:
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}} が機能することに注意してください。これにコントローラーを使用して正しい方向に進んでいるか、コントローラーにデータを出力させるにはどうすればよいか疑問に思っています。
ありがとう