Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 把手:模板内有多个模型_Javascript_Backbone.js_Handlebars.js - Fatal编程技术网

Javascript 把手:模板内有多个模型

Javascript 把手:模板内有多个模型,javascript,backbone.js,handlebars.js,Javascript,Backbone.js,Handlebars.js,我从车把开始,想知道: 是否有可能将多个模型传递给视图 我正在将带有$(模板(模型))的模型传递给视图: var source = $('#template').html(); var template = Handlebars.compile(source); var model = this.model.toJSON(); $(template(model)).appendTo(this.$parent); 因此,我可以将一个带有存储JSON数据的变量传递给

我从车把开始,想知道:

是否有可能将多个模型传递给视图

我正在将带有
$(模板(模型))
的模型传递给视图:

    var source = $('#template').html();
    var template = Handlebars.compile(source);
    var model = this.model.toJSON();
    $(template(model)).appendTo(this.$parent);
因此,我可以将一个带有存储JSON数据的变量传递给视图。但是,如果我想在一个模板中包含两个不同的变量/模型,该怎么办


这可能吗?这比生成另一个模板并加载到另一个模板要容易得多

编译后的Handlebar模板只需要一个对象作为其参数,您可以根据需要构建该对象。如果需要两个模型,只需添加额外的间接级别:

var html  = template({
    model: this.model.toJSON(),
    other: this.other_model.toJSON()
});
然后在模板中,您可以说:

{{model.attribute}}
{{other.other_attribute}}
诸如此类


另一方面,主干视图将HTML添加到除
this.$el
(即
this.$parent
)之外的任何内容都有点不可靠。事件绑定到此。$el,因此如果没有帮助,事件将无法工作。如果您稍微改变一下,以便父视图将视图的
$el
放置在某个位置,这样您的视图就可以自包含,那么您可能会更轻松