0

私は Backbone.js と Require.js を初めて使用します。私のアプリでは、次のように、require (text! プラグインを使用) を介して各モジュールにテンプレートをロードしています。

define([
'jQuery',
'Underscore',
'Backbone',
'API',
'Utils',
'text!templates/home/register.html'
], function($, _, Backbone, api, utils, registerTpl){
       var registerView = Backbone.View.extend({
           el: $("#content"),
           render: function(){
               this.el.html(registerTpl);
           },
           {...}

backbonetutorials.com の例に示されているように、データ モデルをバインドする方法や、テンプレートにデータを直接ロードする方法がわかりません。たとえば、次のようになります。

{...}
render: function(){
        //Pass variables in using Underscore.js Template
        var variables = { search_label: "My Search" };
        // Compile the template using underscore
        var template = _.template( $("#search_template").html(), variables );
        // Load the compiled HTML into the Backbone "el"
        this.el.html( template );
},
{...}
<script type="text/template" id="search_template">
<!-- Access template variables with <%= %> -->
<label><%= search_label %></label>
<input type="text" id="search_input" />
<input type="button" id="search_button" value="Search" />
</script>

洞察、ヒント、またはコード スニペットをいただければ幸いです。

4

1 に答える 1

3

簡単です。チュートリアルでは、テンプレート データを DOM から直接取得し、require js を使用して参照として渡します。

次のようなことができます:

template = _.template(registerTpl),

render: function(){
        var variables = { search_label: "My Search" };
        this.el.html(this.template(variables));
        return this;
},

代わりに、モデルのデータをテンプレートで使用する場合:

this.el.html(this.template(this.model.toJSON()));   
于 2012-10-05T12:57:42.523 に答える