0

まず第一に、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}} が機能することに注意してください。これにコントローラーを使用して正しい方向に進んでいるか、コントローラーにデータを出力させるにはどうすればよいか疑問に思っています。

ありがとう

4

1 に答える 1