1
kendoTabStrip
に新しいアイテムを追加すると、ビューを更新しようとしています。しかし、新しいアイテムを追加すると、1つのフレームに異なるDOM要素のように見えます。タブストリップの更新ノックアウト剣道
のViewModel:
VVMStyle = function() {
function guid() {
function s4() {
return Math.floor((1 + Math.random()) * 0x10000)
.toString(16)
.substring(1);
}
return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
s4() + '-' + s4() + s4() + s4();
}
var counter = 0;
var ItemViewModel = function(id, title, text) {
var self = this;
self.id = id;
self.title = title;
self.text = text;
if (counter === 0) {
self.active = 'k-state-active';
} else {
self.active = '';
}
counter += 1;
};
var ViewModel = {
items: ko.observableArray([new ItemViewModel(guid(), 'Tab 1', 'Tab 1 text'), new ItemViewModel(guid(), 'Tab 2', 'Tab 2 text')]),
newTabTitle: ko.observable(''),
newTabText: ko.observable(''),
onAdd: function() {
this.items.push(new ItemViewModel(guid(), this.newTabTitle(), this.newTabText()));
ko.cleanNode(document.getElementById("availableStylessda"));
ko.applyBindings(ViewModel, document.getElementById("availableStylessda"));
}
};
//here I use jsrender templates
new createTemplate(true, 'availableStyles', undefined, onRender);
function onRender(context) {
$('#config').append(context);
ko.applyBindings(ViewModel, document.getElementById("availableStylessda"));
}
}
new VVMStyle();
またビュー
がある<script id="availableStyles" type="text/x-jsrender">
<div id='availableStylessda'>
<div id ='tabStrip' data-bind= "kendoTabStrip: {}">
<ul data-bind="foreach: items">
<li data-bind="attr:{id:id}, css:active, text:title "></li>
</ul>
<!-- ko foreach: items -->
<div data-bind="attr:{id:id}">
<span data-bind="text: text"></span>
</div>
<!-- /ko -->
</div>
<p>
<label for="newTabTitle">Title</label>
<input id="newTabTitle" type="text" data-bind="value: newTabTitle, valueUpdate: 'afterkeydown'" />
<label for="newTabText">Text</label>
<input id="newTabText" type="text" data-bind="value: newTabText" />
<button data-bind="click: onAdd, enable: newTabTitle().length">Add</button>
</p>
</div>
だから、私は新しいタブ(第3)を追加するとき、私は何9つのタブ... を見ますモデルから動的にビューを更新する最善の方法は?タブのdivには、input、colorPickersなどのより多くの観測可能なdom要素があります。