Mein viewModel hat ein Array namens 'Items'. Ich möchte den Inhalt von 'Items' mit einem Foreach-Binding anzeigen. Alles funktioniert gut, wenn ich normales HTML verwende. Funktioniert aber nicht mit einer Dialogbox, die ich mit jQueryUI erstellt habe.Knockout-Bindung funktioniert nicht mit jQueryUI-Dialog
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);
ich eine Geige hier my fiddle
@ Matt.kaaj Ich muss nutzen ko.mapping und den Namespace. Mein wirkliches Weltmodell ist sehr groß und ko.mapping hilft mir dabei. – Harrobbed