gpt4 book ai didi

javascript - 手动更新knockout observableArray

转载 作者:行者123 更新时间:2023-11-28 08:02:56 27 4
gpt4 key购买 nike

我有一个由 AJAX 调用填充的可观察数组,但它没有更新。

function ViewModel() {
var self = this;
self.FinanceTypes = ko.observableArray([]);
self.Country = ko.observable('@Model.Country.CountryName');

function FinanceTypeViewModel(data) {
var self = this;
self.Name = data.Name;
self.Tax = data.TaxPercentage;
//self.Accounts = data.AccountTypes;
}

self.getFinanceTypes = function() {
var data = { country: ko.toJS(self.Country()) };

$.getJSON("/Admin/GetFinanceTypes", data, function(result) {
var mapped = ko.utils.arrayMap(result, function(item) {
return new FinanceTypeViewModel(item);
});
ko.utils.arrayPushAll(self.FinanceTypes(), mapped);
self.FinanceTypes.valueHasMutated();
});
}

self.getFinanceTypes();
}

问题行是

self.FinanceTypes.valueHasMutated();

其他一切正常。这给出了“ Uncaught ReferenceError :名称未定义”

如果我把它改成

self.FinanceTypes().valueHasMutated();

我收到“未捕获的类型错误:未定义不是函数”

谢谢

最佳答案

调用ko.utils.arrayPushAll(self.FinanceTypes(),mapped)mapped中的所有项目推送到未包装财务类型。调用它而不解开它,您将不必调用 valueHasMutated:ko.utils.arrayPushAll(self.FinanceTypes,mapped)

关于javascript - 手动更新knockout observableArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25158404/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com