我在骨干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');
}
},