我有这个:
<div data-bind="with: storeModel.stores()">
<h1>Store count <span data-bind="text: '(' + $data.length + ')'"></span></h1>
<ul id="stores" data-bind="foreach: $data">
<li data-bind="text: Name, click: $root.storeModel.editStore"></li>
</ul>
</div>
<div id="editStore" data-bind="with: storeModel.currentEditItem()">
<form data-bind="submit: $root.storeModel.saveStore" action="">
<fieldset>
<legend>Foo</legend>
<label for="name">Name:</label>
<input type="text" data-bind="value:Name" id="name" />
<label for="address">Address:</label>
<input type="text" data-bind="value:StreetAddress" id="address" />
<label for="postalcode">Postal code:</label>
<input type="text" data-bind="value:PostalCode" id="postalcode" />
<label for="city">City:</label>
<input type="text" data-bind="value:City" id="city" />
<button style="display:block" type="submit" data-bind="jqButton: $data">Save</button>
</fieldset>
</form>
</div>
p.editStore = function(store, event) {
location.hash = 'Stores/Edit/' + ko.utils.unwrapObservable(store.StoreId);
p.currentEditItem(store);
//Append edit form to li, how?
}
现在,我希望每个 li 元素上的单击事件将编辑表单附加到所述 li 上。在这里保持编辑表单的模板是个好主意吗?否则,我的意思是,需要为每个 li 生成编辑表单。
还是应该使用绑定处理程序?
主要来自 jQuery,在 KO 中处理 UI 内容可能会非常混乱。感谢所有答案。