Kendo UI Mobile & MVVMを使用している場合、リストビューでアイテムを編集する適切な方法は何ですか?
以下を使用すると、期待した結果が得られません。
HTML
<div id="itemsView"
data-role="view"
data-model="vm">
<ul data-role="listview" data-bind="source: items"
data-template="itemsTemplate">
</ul>
<script id="itemsTemplate" type="text/x-kendo-template">
<li>
#=Name#
</li>
</script>
<input type="text" data-bind="value: newValue" />
<button data-role="button" data-bind="click: update">update</button>
</div>
JavaScript
var vm = kendo.observable({
items: [{
Name: "Item1"}],
newValue: '',
update: function(e) {
var item = this.get("items")[0];
item.set("Name", this.get("newValue"));
//adding the follwoing line makes it work as expected
kendo.bind($('#itemsView'), vm);
}
});
kendoApp = new kendo.mobile.Application(document.body, {
transition: "slide"});
その項目の Name プロパティの変更がリストビューに反映されることを期待しています。代わりに、新しいアイテムがリストビューに追加されます。配列を調べると、追加の項目がなく、変更が行われたことがわかります。ビューをビューモデルに (再) バインドすると、リストが更新されて変更が反映されます。このような変更後の再バインドは意味がないようです。
これがjsfiddleです: http://jsfiddle.net/5aCYp/2/