【问题标题】:Underscore throws an exception when template not available模板不可用时下划线抛出异常
【发布时间】:2012-05-23 05:16:25
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

    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());
            //...
        },
        //...
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-29
      • 1970-01-01
      • 2014-11-10
      • 1970-01-01
      • 2013-05-24
      • 2011-02-18
      • 1970-01-01
      相关资源
      最近更新 更多