显示hasMany时Emberjs最大调用堆栈

时间:2013-05-13 11:42:42

标签: ember.js

我是Ember的新手,我的显示问题有很多关系。

我的模特:

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}}

但是当对象Shop在openSettings中有一些关系时(openSettings:[1,2])然后我得到错误:

  

未捕获RangeError:超出最大调用堆栈大小

我做错了什么?

灯具:

    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 个答案:

答案 0 :(得分:6)

当字段命名为“data”时,Ember会抛出该错误。改变后,一切正常。