1

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

<script type="text/html" id="header-template">
<div class='header'>
<strong><%= name %></strong>
</div>
</script>

然后在视图中:

template = _.template($("#header-template").html());

$("#header-template").html()在 Opera 中,这会由于返回 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 应用程序:

http://goo.gl/KoOvq

4

1 回答 1

0

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

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

模板=函数(变量){返回_.模板(模板,变量)}

于 2012-10-11T10:43:46.937 回答