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
Backbone.js 下划线JS嵌套模板:如何操作?_Backbone.js_Underscore.js_Nested - Fatal编程技术网

Backbone.js 下划线JS嵌套模板:如何操作?

Backbone.js 下划线JS嵌套模板:如何操作?,backbone.js,underscore.js,nested,Backbone.js,Underscore.js,Nested,我本身没有面临技术挑战,因为我有一些工作代码。我只是不确定这是一条正确的道路,所以在我继续走这条路之前,我想请一些专家来帮助我 我正在使用这篇文章中的“render”函数: 我有两个主要观点: DetailLineView = Backbone.View.extend({ initialize: function (options) { this.options = options; this.render(); }, render: fu

我本身没有面临技术挑战,因为我有一些工作代码。我只是不确定这是一条正确的道路,所以在我继续走这条路之前,我想请一些专家来帮助我

我正在使用这篇文章中的“render”函数:

我有两个主要观点:

DetailLineView = Backbone.View.extend({
    initialize: function (options) {
        this.options = options;
        this.render();
    },
    render: function () {
        var variables = { detailLine: this.options.detailLine };
        this.$el.html(render("DetailLine", variables));
    }
});

当然还有相应的模板

现在,上面的代码可以工作了,但据我所知,我并没有实际使用DetailLineView

我有一种感觉,有一种(更多?)更优雅的方式来做这件事,但我不知道如何。。。有人能帮忙吗

编辑:更好的(?)解决方案:

我将CustomerView更改为:

CustomerView = Backbone.View.extend({
    initialize: function (options) {
        this.options = options;
    },
    render: function () {
        var variables = { customer: this.options.customer.attributes };

        this.$el.html(renderTemplate("Customer", variables));
        var dlv = new DetailLineView({ 
                          el: $('.detailLinesContainer', this.$el), 
                          detailLine: this.options.customer.attributes.detailLines[0] 
                      });
        dlv.render();
    }
});

我更喜欢它,现在我正在使用我的DetailLineView…

我已经用一个比原来更好的解决方案更新了我的OP

CustomerView = Backbone.View.extend({
    initialize: function (options) {
        this.options = options;
    },
    render: function () {
        var variables = { customer: this.options.customer.attributes };

        this.$el.html(renderTemplate("Customer", variables));
        var dlv = new DetailLineView({ 
                          el: $('.detailLinesContainer', this.$el), 
                          detailLine: this.options.customer.attributes.detailLines[0] 
                      });
        dlv.render();
    }
});