我已经为此挣扎了一段时间,我需要一些帮助。我有一个用于渲染视图的 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 数组绑定到一个列表,并且该列表具有 femoveAlbum onclick 函数。传递给函数的数据也是正确的对象。
我缺少一些基本的东西吗?