私はしばらくの間これに取り組んできました、そして私はいくつかの助けが必要です。ビューのレンダリングに使用しているKOモデルとビューモデルがあります。この場合、オブジェクトはバンドです。このバンドには、観察可能なアルバムの配列があります。バンドモデルからアルバムを削除する方法がわかりません。
function band(item) {
var self = this;
self.name = ko.observable(item.name);
self.country = ko.observable(item.country);
self.state = ko.observable(item.state);
self.city = ko.observable(item.city);
self.emailAddress = ko.observable(item.emailAddress);
self.albums = ko.observableArray(item.albums);
}
function User() {
var self = this;
self.bands = ko.observableArray([]);
self.singleBand = ko.observable();
//Get Bands from data source and create new models to add to bands array
$.getJSON("/api/band", function (allData) {
$.each(allData, function (index, item) {
self.bands.push(new band(item));
});
});
//function to get a single band from a rendered list
self.getThisBand = function (item) {
self.bands = ko.observableArray(null);
self.singleBand(item);
};
//remove band from singleBands' album array
self.removeAlbum = function (albumToDelete) {
//how to delete album from band model
};
}
ko.applyBindings(new User());
ロジックは非常に単純です。バンドのリストを取得し、UIのリストにバインドしています(問題はありません)。UIでバンド名をクリックすると、getThisBandメソッドをロードし、UIにデータを入力します(これも問題はありません)。singleBand.albums配列をリストにバインドしました。これには、femoveAlbumonclick関数があります。関数に渡されるデータも正しいオブジェクトです。
私が見逃している基本的なものはありますか?