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

Javascript Backbone.js内联模板在Opera中不起作用,javascript,backbone.js,underscore.js,backbone-views,Javascript,Backbone.js,Underscore.js,Backbone Views,我创建了一个使用内联模板的backbone.js应用程序,示例如下: <script type="text/html" id="header-template"> <div class='header'> <strong><%= name %></strong> </div> </script> 在Opera中,由于$(“#标题模板”).html()返回null,这会引发一个错误。有人知道如何解决这个问题吗 谢

我创建了一个使用内联模板的backbone.js应用程序,示例如下:

<script type="text/html" id="header-template">
<div class='header'>
<strong><%= name %></strong>
</div>
</script>
在Opera中,由于
$(“#标题模板”).html()
返回null,这会引发一个错误。有人知道如何解决这个问题吗

谢谢

更新:

我在控制台中遇到的错误是
未处理的错误:“App.view.header”不是构造函数
。当我将下划线.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应用程序,它也有同样的问题:


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

我更喜欢这种方式,因为如果你开始将模板放在另一个文件中,它们只会在需要时加载,就像你现在所做的那样,它们会在应用程序启动时加载

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


在Opera 12.02,Buold 1578(Mac)上使用jQuery 1.7.2和下划线1.3.3对我有效您尝试过使用不同的内容类型吗?说
type=“text/x-下划线-template”
。在您尝试调用该模板时,该模板是否存在于DOM中?在页面完全加载后,在控制台中运行时会发生什么?这是因为render不是构造函数。您需要实例化并调用render:
(new App.view.header())。render().el
应该这样做。“渲染”仅在创建视图后工作。看起来Opera在加载库的顺序上有问题。你能不使用head.js试试吗?当我在函数中包装模板变量时,仍然会出现错误:
TypeError:App.view.header不是构造函数。谢谢你的帮助。你能把你的HTML和代码放在JSbin或JSFIDLE中吗?因为这看起来像是一个名称空间问题,而这很难用几行代码来确定。我创建了一个小型的Backbone.js应用程序,它也有同样的问题:这里显示的是
内联模板加载
,没有错误,看起来很好。
$('header').html( new App.view.header().render().el);