Backbone / Marionette Single Model Fetch上的类型错误

时间:2013-11-05 15:16:06

标签: backbone.js marionette

我已经习惯使用Backbone和Marionette并遇到一些障碍,我相信我忽略了一些东西。我正在尝试用我的API中的模型填充我的ItemView,我可以看到请求和数据返回正常但我得到一个类型错误:obj未定义在看起来像我的听众:

TypeError: obj is undefined
var id = obj._listenerId || (obj._listenerId = _.uniqueId('l'));

这是我的模型/视图

var MyDetailView = Marionette.ItemView.extend({
    template: '#my-item-detail',
    initialize: function () {
        _.bindAll(this, 'render');
        // bind the model change to re-render this view
        this.listenTo(this.model, 'change', this.render);
    },
    tagName: "div"
})

var MyModel= Backbone.Model.extend({ urlRoot: '/api/model', intialize: function () { } });

我要执行的代码:

var m = new MyModel({ id: 123});
        m.fetch({
            success: function (model, response) {
                var view = new MyDetailView (model);
                  layout.content.show(view);
            }
        });

1 个答案:

答案 0 :(得分:1)

您需要将模型作为选项哈希传递,而不仅仅是将第一个参数传递给MyDetailView,如下所示:

var view = new MyDetailView({ model: model });

同样为了将来的参考,Marionette在Marionette.View构造函数中使用render进行_.bindAll。

相关问题