将数据插入到使用require.js加载的模板中

时间:2012-10-05 12:42:53

标签: backbone.js requirejs

我对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>

任何见解,提示或代码段都将受到赞赏。

1 个答案:

答案 0 :(得分: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()));