私のviewModelには「項目」という配列があります。私はforeachバインディングを使って 'Items'の内容を表示したい。通常のHTMLを使用するとすべて正常に動作します。しかし、jQueryUIを使って作成したダイアログボックスでは動作しません。ノックアウトバインディングjQueryUIダイアログでは機能しません
HTML:
<div id="skus0">
<div id="skus1">
<ul data-bind="foreach: Items">
<li data-bind="text:Name"></li>
</ul>
</div>
<input type="button" id="openQryItems" class="btn btn-info" value="Open" data-bind="click:openQueryItems" />
</div>
はJavaScript:
// my view model
var viewModel = {
Items: [{Name:'Soap'},{Name:'Toothpaste'}]
};
// JS to configure dialogue
$("#skus1").dialog({
autoOpen: false,
width: 500,
modal: true,
buttons: {
"OK": function() {
$(this).dialog("close");
},
"Cancel": function() {
$(this).dialog("close");
}
}
});
// for mapping my model using ko.mapping plugin
var zub = zub || {};
zub.initModel = function (model) {
zub.cycleCountModel = ko.mapping.fromJS(model);
zub.cycleCountModel.openQueryItems = function() {
$("#skus1").dialog("open");
}
ko.applyBindings(zub.cycleCountModel, $("#skus0")[0]);
}
zub.initModel(viewModel);
私はここにmy fiddle
@ Matt.kaaj私はko.mappingと名前空間を使用する必要があります。私の実際の世界のモデルは非常に大きく、ko.mappingはそれで私を助けてくれます。 – Harrobbed