1

以下の例のように、インライン テンプレートを使用する 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 アプリを作成しました。

http://goo.gl/KoOvq

4

1 に答える 1

0

テンプレートを関数でラップし、必要な場合にのみ呼び出すことができます。

テンプレートを別のファイルに配置し始めると、必要なときにのみ読み込まれるため、この方法がより気に入っています。現在の方法では、アプリの開始時に読み込まれます。

テンプレート = 関数 (変数){ return _.template(テンプレート、変数) }

于 2012-10-11T10:43:46.937 に答える