2013-10-08 8 views
0

Не можете найти записи из моей моделиEmber JS Найти свойствами

Ember версия:

DEBUG: ------------------------------- 
DEBUG: Ember  : 1.0.0 
DEBUG: Ember Data : 1.0.0-beta.2 
DEBUG: Handlebars : 1.0.0 ember.js 
DEBUG: jQuery  : 1.9.1 ember.js 
DEBUG: ------------------------------- 

Модель:

App.Concert = DS.Model.extend({ 
    tour_id: DS.attr(), 
    tickets: DS.attr() 
}); 

Поиск:

this.get("store").find("concert", {tour_id: 1}).then(function(result) { 
      console.log("--------------"); 
      console.log(result.content.length); 
      console.log("--------------"); 
     }, function(error) { 
      console.log("broken"); 
     }); 

консоли:

------------- 
length: 0 
-------------- 

Я не могу найти записи из своей модели по свойствам. Кто-нибудь может помочь? Я знаю, что записи с tour_id: 1 существует

ответ

0

попробуйте использовать добытчик ...

console.log(result.get('length')); 
+0

длина по-прежнему равна 0 –

+0

Можете ли вы предоставить скрипку? – Edu

1

Edu на самом деле частично правильно (см ниже), но реальная причина того, что вы не получите обратно все записи скорее всего, формат, возвращаемый вашим API. Ember Data очень строг относительно типа данных, которые он ожидает и как он структурирован. Если вы запросите свой API для концертов с tour_id1, тогда так будет выглядеть ответ. Обратите внимание, что корневой объект является плюрализированным именем модели, а ключ представляет собой массив концертов.

{ 
    "concerts": [ 
    { 
     "id": 1, 
     "tour_id": 1, 
     "name": "cool concert" 
    }, 
    { 
     "id": 5, 
     "tour_id": 1, 
     "name": "awesome concert" 
    } 
    ] 
} 

Что касается комментария EDU, в если вы вызываете метод find магазина, Ember данные не выполняет регулярную находку. Под капотом вызывается findQuery и возвращает экземпляр DS.RecordArray. Это не обычный массив JavaScript, поэтому вам нужно уважать, как работает Ember и как он работает с массивами.

Рекомендую прочитать на DS.RecordArray в направляющих Ember. Кроме того, если вы планируете использовать Ember Data, вы не должны бояться идеи исследовать его источник. Ember Data - это амбициозный проект, и документация по-прежнему очень много работает. Поэтому источник Ember Data является вашим самым важным источником информации.