我创建了一个使用内联模板的backbone.js应用程序,例如:
<script type="text/html" id="header-template">
<div class='header'>
<strong><%= name %></strong>
</div>
</script>
然后在视图中:
template = _.template($("#header-template").html());
在Opera中,由于$("#header-template").html()
返回null,因此会引发错误。有谁知道如何解决这个问题?
由于
更新
我在控制台中收到的错误是Unhandled Error: 'App.view.header' is not a constructor
。当我将underscore.js和backbone.js更新为最新版本时,我在Chrome中也会收到此错误。
标题的定义如下:
App.view.header = App.view.header || {}
App.view.header = Backbone.View.extend({
...
});
并在路由器中呈现如下:
$('header').html( new App.view.header().render().el);
另一次更新
我创建了一个小的backbone.js应用程序,它有同样的问题:
答案 0 :(得分:0)
您可以将模板包装在一个函数中,并仅在需要时调用它。
我更喜欢这种方式,因为如果你开始将你的模板放在另一个文件中,它们将仅在需要时加载,你现在的方式是在应用程序启动时加载它们。
template = function(variables){return _.template(template,variables)}