OK、Backbone、node.js、Underscore、Backbone Boilerplate をいじっているので、十分な知識があります。私はまだ頭がよく理解できないので、狂ったように質問しています。現在、 Backbone BoilerplateでUnderscoreライブラリを使用して、データを渡すことができる非常に単純なテンプレートを作成しようとしています。モデルが更新されたら、テンプレートを変更するビューを変更します。JSファイル内にHTMLコードを書くのではなく、これが正しい方法だと思いますか? 私が間違っているなら、私を止めてください。
Backbone Boilerplate には、.fetch()
私が理解しているテンプレート システムがあります。ただし、それは私のJSでHTMLを書くことを意味すると思います。そのため、アンダースコアを使用して、モデルからビュー、モジュールに情報を単純に渡して、テンプレートを再度レンダリングしたいと考えました (または、ビューを完全にスキップできるでしょうか?)。
私の質問は、なぜこれがうまくいかないのかということです.JSONに変更していないからだと思います.
私のHTMLテンプレート:
<div>
<script id="rtemp" type="text/x-underscore-template">
<span><%= title %></span>
</script>
</div>
そして JavaScript:
define([
// Global application context.
"app",
// Third-party libraries.
"backbone",
"underscore",
"json2"
],
function(app, Backbone) {
var Attempt = app.module();
Attempt.Model = Backbone.Model.extend({});
Attempt.Collection = Backbone.Model.extend({});
Attempt.Views.Tutorial = Backbone.View.extend ({
template: "app/templates/attempt",
render: function(done) {
var tmpl = app.fetchTemplate(this.template);
//console.info(tmpl);
this.$el.html(tmpl({title: 'This is a title'}))
}
});
return Attempt;
});
要素を調べると、要素が表示されます<div>
が、テンプレート スクリプト タグがまだ残っているため、HTML のページには表示されません。最初に JSON に変換するために使用しようとしjson2
ましたが、何か間違ったことをしない限り、うまくいかないようでした。アンダースコアは使用するのに最適ですか? バックボーンの依存関係なので、そう思いました。または、何か他のものを使用する必要があります。JS で HTML を記述したくないだけです。