1
私が達成しようとするのは、複数のビューモデル(数値は可変です)をインスタンス化することですが、クリック時の関数バインドはクリックした場所に関係なく最後のインスタンスにのみ影響します。私はクリックし何でもボタンノックアウトviewmodel関数は最後のインスタンスのみに作用します
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>
そして、最後intanceが変更されます。アイデア?提案?
レッスンを学びました。ありがとう! –