1

我将 Backbone.js 和 underscore.js 与 Requirejs 一起使用。但是,当我尝试加载我的视图模板时,它在 Underscore.js 第 8 行中给了我(8 超出范围 6)错误。请告诉我我做错了什么。

这是我的代码:

var imageView = new ImageView({model: item});


define(['jquery','underscore','backbone','imageview','text!../templates/template_image.html'], 
function($, _, Backbone, ImageView, template){
        var ImageView = Backbone.View.extend({
            initialize: function(){
                this.showImageTemplate = _.template(template);              
            },
            render: function(){
                var html = this.showImageTemplate(this.model);
                this.$el.html(html);
                return this;
            }
        });
    return ImageView;
});

还有我的模板文件:

<img id="frameImg" src="<%= DocumentPath %>/<%= DocumentName %>" alt="image" title="image"/>
4

1 回答 1

1

您将原始Backbone.Model对象作为数据传递给您的模板,因此您正在使用类似的东西

{       
    _changing: false,
    _pending: false,
    _previousAttributes: {}
    attributes: {
        DocumentPath: "", 
        DocumentName: ""
    }
    ...
}

您可能只需要属性,例如可以通过这些属性获得model.toJSON。尝试 :

var html = this.showImageTemplate(this.model.toJSON());
于 2013-08-27T08:52:38.000 回答