2013-05-13 2 views
1

Я новичок в Ember, и у меня проблема с отображением hasMany отношение.Максимальный стек вызовов Emberjs при отображении hasMany

Мои модели:

App.Shop = DS.Model.extend({ 
       name:   DS.attr('string'), 
       openSettings: DS.hasMany('App.OpenSetting') 
}); 
App.OpenSetting = DS.Model.extend({ 
       title:   DS.attr('string'), 
       data:   DS.attr('string'), 
       shopId:   DS.belongsTo('App.Shop') 
}); 

У меня есть отображение:

DS.RESTAdapter.map('App.Shop', { 
    openSettings: { key: 'openSettings' } 
}); 
DS.RESTAdapter.map('App.OpenSetting', { 
    shopId:   { key: 'shopId' } 
}); 

В index.html в сценарии я есть:

{{#each model}} 
    {{id}} - {{name}} # 
    {{#each openSettings}} 
     {{title}}     
    {{/each}} 
{{/each}} 

Но когда объект Магазин имеет какие-то отношения в openSettings (openSettings: [1,2]), то я получаю ошибку:

Uncaught RangeError: Maximum call stack size exceeded

Что я делаю неправильно?

Светильники:

App.Shop.FIXTURES = [ 
     { 
      name: "Supermarket", 
      id: 2, 
      openSettings: [ 
       2, 5 
      ] 
     } 
    ]; 

    App.OpenSetting.FIXTURES = [ 
     { 
      title: "monday - friday", 
      data: "8:00 - 24:00", 
      id: 2, 
      shopId: 2 
     }, 
     { 
      title: "saturday", 
      data: "8:00 - 1:00", 
      id: 5, 
      shopId: 2 
     } 
    ]; 

Спасибо за помощь.

+1

У меня есть решение. Ember не любит поле с именем «data» ... – thunder

+0

Вы можете опубликовать это как ответ на свой собственный вопрос и пометить как правильный для тех, у кого есть такая же проблема, и споткнуться по этому вопросу в будущем. =) – Anonymous

ответ

6

Ember выбрасывает эту ошибку, когда поле называется «данные». После изменения все работает нормально.

+1

кто-нибудь знает, почему? я переименовал по полю в 'items', и теперь он работает, но я хотел бы знать, почему' data' не работает? есть ли официальный документ с зарезервированными именами полей? – loostro

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