[英]Backbone.js inline templates not working in Opera
我已经创建了一个使用内联模板(例如下面的示例)的steel.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和boneline.js更新到最新版本时,我在Chrome中也收到此错误。
标头的定义如下:
App.view.header = App.view.header || {}
App.view.header = Backbone.View.extend({
...
});
并在路由器中这样渲染:
$('header').html( new App.view.header().render().el);
另一个更新
我创建了一个有相同问题的微小的bone.js应用程序:
您可以将模板包装在一个函数中,并仅在需要时调用它。
我更喜欢这种方式,因为如果您开始将模板放入其他文件中,则仅在需要时才加载模板,而现在的方式是在应用程序启动时加载它们。
模板=函数(变量){return _.template(模板,变量)}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.