Was ich versuche zu erreichen ist, mehrere Viewmodels zu instanziieren (Nummer ist Variable), aber eine Funktion Bindung bei Klick betrifft nur die letzte Instanz, egal, von wo ich klicke.Knockout Viewmodel Funktion betrifft nur die letzte Instanz
JS
function Photo(name){
var self = this;
self.name = name;
}
function SectionPhotosViewModel() {
var self = this;
// Editable data
self.photos = ko.observableArray([
{
name: 'smth'
},
{
name: 'smth else'
}
]);
// Operations
self.addPhoto = function() {
self.photos.push(new Photo('anything'));
}
}
function bindSectionPhotos(element, index, list){
ko.applyBindings(SectionPhotosViewModel, element);
}
_.each(document.querySelectorAll('fieldset.room'), bindSectionPhotos)
HTML
<fieldset class="room">
<div data-bind="click: addPhoto;" class="btn btn-success">Add new</div>
<ul data-bind="foreach: photos">
<li data-bind="text: name"></div>
</ul>
</fieldset>
<fieldset class="room">
<div data-bind="click: addPhoto;" class="btn btn-success">Add new</div>
<ul data-bind="foreach: photos">
<li data-bind="text: name"></div>
</ul>
</fieldset>
<fieldset class="room">
<div data-bind="click: addPhoto;" class="btn btn-success">Add new</div>
<ul data-bind="foreach: photos">
<li data-bind="text: name"></div>
</ul>
</fieldset>
<fieldset class="room">
<div data-bind="click: addPhoto;" class="btn btn-success">Add new</div>
<ul data-bind="foreach: photos">
<li data-bind="text: name"></div>
</ul>
</fieldset>
Und was auch immer Knopf I klicken, wird nur der letzte intance wird geändert. Ideenas? Vorschläge?
Lektion gelernt. Vielen Dank! –