2013-09-03 2 views
0

У меня есть маршрутизатор, который загружает «Место».Не удается загрузить связанные записи с маршрутизатора (ember 1.0.0 и ember-data 1.0.0-beta.1)

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-данных 1.0.0 Переход Руководство, он использует обещания, чтобы получить данные, но здесь ничего не происходит.

Вот JSbin, чтобы увидеть, что я имею в виду: http://jsbin.com/iMEdOCe/6/

Когда я перейти к месту, я должен иметь по крайней мере одна запись отображается.

Я не могу понять, как загрузить и отобразить записи. Что мне не хватает?

Есть ли лучший способ отобразить массив подпунктов модели?

ответ

0

Это сочетание двух вопросов в уголек-данных 1.0.0-beta.1

Отсутствие дисплея обусловлено hasMany/belongsTo отношений: комментируя эти строки в App.Place и App.Record сделать что-то отображалось.

Однако возникает еще одна проблема: ключевое слово 'data' не должно использоваться.

Замена его с чем-то вроде «канала данных» делает work.`

EDIT: Проблема решена с Эмбер-данных 1.0.0-beta.2

+0

Я думаю, что комментируя принадлежит к работам, потому что вы имеют это сопоставление: 'принадлежитTT: attr ('place')', и вы хотите: 'place: attribTo ('place')'. –

+0

Спасибо за лидерство. Я смущен, потому что ваш совет работает с моим jsbin, но не на моей локальной машине. Я продолжаю отладку – lauhub

+0

ОК, я, наконец, нашел, и это было сложно: после копирования с jsbin на мой локальный сервер у меня все еще было такое же поведение (ничего не отображается ниже описания комнаты). Но затем, я удаляю часть после # из URL, нажимаю return. А потом жестко сбросил мою страницу и ... чудо это сработало ... пока я не переместился несколько раз, а затем исчез. Очевидно, это ошибка от ember. Это происходит каждый раз, когда я обнуляю URL. – lauhub

Смежные вопросы