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 过渡指南中所述,它使用承诺来检索数据,但在这里,什么都没有发生。

这是一个 JSbin,看看我的意思:http: //jsbin.com/iMEdOCe/6/

当我导航到一个地方时,我应该至少显示一条记录。

我不知道如何加载和显示记录。我想念什么?

有没有更好的方法来显示模型的子项数组?

4

1 回答 1

0

这是 ember-data 1.0.0-beta.1 中两个问题的组合

缺少显示是由于 hasMany/belongsTo 关系:将这些行注释到 App.Place 和 App.Record 中会显示某些内容。

但是出现了另一个问题:不应使用“数据”关键字。

用“数据路径”之类的东西代替它可以工作。`

编辑:Ember-data 1.0.0-beta.2 解决了问题

于 2013-09-04T11:49:15.993 回答