0

「場所」をロードするルーターがあります。

App.PlaceRoute = Ember.Route.extend({
        model: function(params) {
            return this.store.find('place', params.place_id);
        },
        setupController: function(controller, model) {
            this._super(controller, model);

            //The promise way ?
            var placeId = model.get('id');
            var myRecords = this.store.find('record', {place:placeId}).then(function(recs){
                    console.log("DOES IT HAPPEN ?"); //Never logged
                    this.controllerFor('records').set('content', recs);
            });

            //Or is the good way below ?
            //this.controllerFor('records').set('content', myRecords);

            //The only that works (which is not I want but displays as I would like):
            //this.controllerFor('records').set('content', App.Record.FIXTURES);

            this.controllerFor('places').set('content', this.store.find('place'));
        },
        renderTemplate: function(){
            this.render('place', {
                    controller: 'place'  
            });
            this.render('display-graph-list', {
                    into: 'place',
                    outlet: 'graphs',
                    controller: 'records'  
            });
        }
    });

このプレイスには「レコード」が関連付けられています。

App.Place = DS.Model.extend({
        name: attr('string')
        , desc: attr('string')
        , records: hasMany('record')
        , site: belongsTo("site")
    });

    App.Record = DS.Model.extend({
            name: attr('string'),
            type: attr('string'),
            data: attr('string'),
            belongsTo: attr('place')
    });

ember-data 1.0.0 Transition Guide に示されているように、promise を使用してデータを取得しますが、ここでは何も起こりません。

これが私が何を意味するかを見るためのJSbinです: http://jsbin.com/iMEdOCe/6/

ある場所に移動すると、少なくとも 1 つのレコードが表示されるはずです。

レコードを読み込んで表示する方法がわかりません。何が恋しいですか?

モデルのサブアイテムの配列を表示するより良い方法はありますか?

4

1 に答える 1

0

これは、ember-data 1.0.0-beta.1 の 2 つの問題の組み合わせです。

表示されないのは、hasMany/belongsTo の関係によるものです。これらの行を App.Place と App.Record にコメントすると、何かが表示されます。

ただし、別の問題が発生します。'data' キーワードは使用しないでください。

「datapath」などに置き換えると機能します。

編集: Ember-data 1.0.0-beta.2 で解決された問題

于 2013-09-04T11:49:15.993 に答える