gpt4 book ai didi

knockout.js - knockout observableArray 推送 - 不推送到数组

转载 作者:行者123 更新时间:2023-12-02 02:12:28 26 4
gpt4 key购买 nike

尝试使用 Knockout,我在推送到可观察数组时遇到了问题。我下面的代码通过单击按钮从服务器获取一些 json 数据,它返回一个对象数组。第一个 console.log 控制台运行良好,我的对象数组非常好。

但是,我似乎无法将每个对象都推送到我的可观察数组中。控制台显示空数组。我已经尝试了多种变体,但感觉我只是遗漏了一些简单的东西,但我很难找到它。

我想做的是从服务器加载一些数据,将其放入一个我可以绑定(bind)到模板的可观察数组中,然后执行类似 foreach on 的操作以输出数组的内容。

$(function() {
$('#load').click(function() {
$.getJSON('/PreferredDrugList/service/preferredDrugs/y', function(data) {
$(data.preferredDrugs).each(function(index, obj) {
console.log(obj);
$('#result').append('<p>' + (++index) + ') ' + obj.drugName + ' : ' + obj.dosageFormDesc + '</p>');

myViewModel.drugList.push(obj);
console.log(myViewModel.drugList);
});
});//end getJSON
});//end load

});//end ondomready

var myViewModel = {
drugList: ko.observableArray() //list of drug names
};

ko.applyBindings(myViewModel);

最佳答案

请查看以下内容:http://jsfiddle.net/qszZD/

您在上面的评论中提到您需要让 foreach 工作。希望这对您来说是一个好的开始。我正在使用一些东西,您可能想要也可能不想照顾它们:

knockoutJS.mapping

我正在使用可选的 mappingOptions 来定义基于从映射库返回的数据的计算可观察值。通过使用 KO 映射,避免需要手动将元素推送到您的可观察数组中,映射库将自动为您处理,并通过提供映射选项来创建额外的计算字段,使您能够进一步扩展模型。

如果您有任何问题,请告诉我。

关于knockout.js - knockout observableArray 推送 - 不推送到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12151179/

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