如果没有额外的父div,骨干中的模板数据绑定是不行的?

时间:2015-07-27 07:31:05

标签: javascript jquery backbone.js data-binding

我在骨干js中使用模板,我将数据绑定如下:

var TestView = Backbone.View.extend({
    template : '<div data-bind="text:username" class="mydiv1"></div><div data-bind="text:username" class="mydiv2"></div>',

    config: {
        widgetFontColor : null,
        widgetFontSize : null
    },
});

注意:这是我的测试js的片段。

如您所见,我有两个具有相同数据的div:具有不同类别的用户名。

我有一个文本输入字段和一个html按钮。当我在输入中输入内容并单击“提交”按钮时,文本应在同一页面中以不同的样式显示两次。

以下是点击提交时调用的方法。

var publishUsername = function () {
    var username = getString('username');
    hub.publish ('widgetTestTopic', { username :  username});
};

但是这里只显示一个div.i.e只显示第一个div。

但是当我在下面的模板中添加父标记(div或span)时,文本会按预期显示两次。即显示两个div。

template : '<div><div data-bind="text:username" class="mydiv1"></div><div data-bind="text:username" class="mydiv2"></div></div>',

请帮助我理解为什么需要父标签才能显示div。

调用以下函数来渲染视图

_renderView: function () {
        if (this._isDataReady()) {
            this.$el.html('');

            if (this.testView) {
                this.testView.destroy();
            }
            this.testView = this.create('test_view_testView', TestView, {
                el: this.$el,
                viewModel: this.viewModel,
                data : {
                    username : this.viewModel.get('username')
                }
            });
        } 
        else {
            this.$el.html('Data not available');
        }
    },

0 个答案:

没有答案