Backbone js缺少方法'模板'

时间:2014-01-21 14:38:51

标签: javascript backbone.js

我在Backbone js中练习使用外部模板,我得到了这个TypeError,它说对象没有template

如果路由器在另一条路径中,如何识别/调用视图,反之亦然?

我已经包含了我正在处理的代码:

profile.js

window.ProfileView = Backbone.View.extend({ 

initialize: function() {
    this.render();
},

render: function() {
    $(this.el).html(this.template());
    return this;
}
});

main.js

var AppRouter = Backbone.Router.extend({
    routes: {
        'profile' : 'profile'
    },
    profile: function() {
        this.profileView = new ProfileView();
        $('#global-content').html(this.profileView.el);
    }
});


utils.loadTpl (['profile'], function() {
    appRouter = new AppRouter();
    Backbone.history.start();

});

utils.js

window.utils = {
loadTpl: function(views, callback) {

    var deferreds = [];

    $.each(views, function(index, view) {
        if (window[view]) {
            deferreds.push($.get('templates/' + view + '.html', function(data) {
                window[view].prototype.template = _.template(data);
            }));
        } else {
            // alert(view + " not found");
        }
    });

    $.when.apply(null, deferreds).done(callback);
}
};

1 个答案:

答案 0 :(得分:1)

模板不是函数,您需要将其称为视图的属性,因此您应该删除()

e.g。

$(this.el).html(this.template);