当模板不可用时,下划线会抛出异常

时间:2012-05-22 20:38:09

标签: asp.net-mvc-3 backbone.js underscore.js

我在多页网站上使用下划线和主干,每页都有几个下划线模板。在我的主视图(cshtml)上,我加载了一个javascript模板,如http://cl.ly/GpFT和我的第二个视图(cshtml)我使用相同的脚本设置,但javascript模板丢失,然后我得到一个像这样的错误{{3 }}

当我缩小我的脚本时,这将导致脚本中止。是否有可能以一种很好的方式解决这个问题,或者我是否需要准确加载每个页面所需的模板和脚本?

1 个答案:

答案 0 :(得分:0)

你没有告诉我们你的观点是什么样的,所以我假设你正在做这样的事情:

var V = Backbone.View.extend({
    template: _.template($('#some-id').html()),
    //...
});

并且您的视图在加载时会引发TypeErrors。如果DOM中没有#some-id,那么您将会说_.templates(null),这没有任何意义。一个简单的方法是在视图的构造函数中编译模板:

var V = Backbone.View.extend({
    initialize: function() {
        this.template = _.template($('#some-id').html());
        //...
    },
    //...
});