繁体   English   中英

Backbone.js内联模板在Opera中不起作用

[英]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应用程序:

http://goo.gl/KoOvq

您可以将模板包装在一个函数中,并仅在需要时调用它。

我更喜欢这种方式,因为如果您开始将模板放入其他文件中,则仅在需要时才加载模板,而现在的方式是在应用程序启动时加载它们。

模板=函数(变量){return _.template(模板,变量)}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM