我正在尝试从使用 knockout.js 库在 MVC4 中编写的 JSON 响应中提取数据。我有这三个区域需要填充,其中第一个是多选框。我查看了在线示例以及参考资料,以及此处链接的提琴手,但无济于事。我遇到问题的领域是使用 arrayOne 列表中选择的每个项目的所有数据填充 arrayTwo 和网格数组。
function viewModel() {
this.arrayOne = ko.observableArray();
this.chosenarrayOne = ko.observableArray();
this.arrayTwo = ko.observableArray();
this.gridArray = ko.observableArray();
this.chosenarrayTwo = ko.observableArray();
this.chosenarrayOne.subscribe(function (nIds) {
mvvm.arrayTwo(undefined);
mvvm.gridArray(undefined);
var nDx;
if (nIds != null) {
for (nDx = 0; nDx < nIds.length; nDx++) {
$.ajax({
url: '{Working URL Omitted}',
data: { nValue: arrayOne[nDx] },
type: 'GET',
success: function (data) {
mvvm.arrayTwo(data);
},
error: function () {
alert('Array Two ajax error');
}
});
$.ajax({
url: '{Working URL Omitted}',
type: 'GET',
data: { nValue: nIds[nDx] },
success: function (data) {
// Example of what I would like to happen, however I get nothing back
mvvm.gridArray.arrayPushAll(data);
//mvvm.gridArray(data);
},
error: function () {
alert('Grid Array ajax error');
}
});
}
}
}, this);
}
var mvvm = new viewModel();
ko.applyBindings(mvvm);
$.ajax({
url: '{Working URL Omitted}',
type: 'GET',
success: function (data) {
mvvm.arrayOne(data);
},
error: function () {
alert('Array One ajax call error');
}
});
我已经尝试对响应进行 json-ing 以查看返回的内容,并返回数组形式的值。但是,如果 arrayOne var 中有多个元素,则不会返回任何内容。