将 Javascript 对象转换为 Javascript 数组
Converting Javascript object to Javascript array
我正在使用敲除可观察数组来填充 dropdownlist.The 如果我对数组进行硬编码,下拉列表就会被填充 values.But 我现在正在尝试从正在使用的 database.I 获取数据JSON javascript object.I 的格式正在访问 javascript 对象的单个 属性 即;认证,我正在创建一个数组,每次传回的值未定义时我都会将其传回 script.But,而该数组显示在控制台中。
我正在使用的转换为数组的代码是
var getCertifications = function () {
$.ajax({
type : "GET",
async : false,
url : "/Provider/GetCertifications",
dataType : "json",
success: function (data) {
var arrCertification = [];
$.each(data, function (i, item) {
arrCertification.push((item.Certification));
});
return arrCertification;
},
error : function () {
alert(" An error occurred.");
}
});
};
knockout observables 的代码是
var certificates = getCertifications();
self.certificationArray = ko.observableArray(certificates);
而 HTML 是
<div class="form-group">
<label class="col-sm-2 control-label labelfont">Certification:</label>
<div class="col-sm-6">
<select class="form-control" id="certification" name="certification" data-bind="value: certification, options: certificationArray, optionsCaption: 'Select a Certification'">
</select>
</div>
</div>
谁能指导我哪里出错了。
getCertifications() 函数没有 return 任何东西。它所做的只是启动一个 ajax 调用。
您需要使用某种回调或承诺对象来获取此调用的结果。使用回调这看起来像:
var getCertifications = function (cb) {
$.ajax({
type : "GET",
async : false,
url : "/Provider/GetCertifications",
dataType : "json",
success: function (data) {
var arrCertification = [];
$.each(data, function (i, item) {
arrCertification.push((item.Certification));
});
cb(arrCertification);
},
error : function () {
alert(" An error occurred.");
}
});
};
getCertifications(function(certificates) {
self.certificationArray = ko.observableArray(certificates);
});
更好的模式是使用承诺。 $.ajax 方法 return 是一个承诺。然而,回调方法是了解处理异步代码的好起点。
我正在使用敲除可观察数组来填充 dropdownlist.The 如果我对数组进行硬编码,下拉列表就会被填充 values.But 我现在正在尝试从正在使用的 database.I 获取数据JSON javascript object.I 的格式正在访问 javascript 对象的单个 属性 即;认证,我正在创建一个数组,每次传回的值未定义时我都会将其传回 script.But,而该数组显示在控制台中。
我正在使用的转换为数组的代码是
var getCertifications = function () {
$.ajax({
type : "GET",
async : false,
url : "/Provider/GetCertifications",
dataType : "json",
success: function (data) {
var arrCertification = [];
$.each(data, function (i, item) {
arrCertification.push((item.Certification));
});
return arrCertification;
},
error : function () {
alert(" An error occurred.");
}
});
};
knockout observables 的代码是
var certificates = getCertifications();
self.certificationArray = ko.observableArray(certificates);
而 HTML 是
<div class="form-group">
<label class="col-sm-2 control-label labelfont">Certification:</label>
<div class="col-sm-6">
<select class="form-control" id="certification" name="certification" data-bind="value: certification, options: certificationArray, optionsCaption: 'Select a Certification'">
</select>
</div>
</div>
谁能指导我哪里出错了。
getCertifications() 函数没有 return 任何东西。它所做的只是启动一个 ajax 调用。
您需要使用某种回调或承诺对象来获取此调用的结果。使用回调这看起来像:
var getCertifications = function (cb) {
$.ajax({
type : "GET",
async : false,
url : "/Provider/GetCertifications",
dataType : "json",
success: function (data) {
var arrCertification = [];
$.each(data, function (i, item) {
arrCertification.push((item.Certification));
});
cb(arrCertification);
},
error : function () {
alert(" An error occurred.");
}
});
};
getCertifications(function(certificates) {
self.certificationArray = ko.observableArray(certificates);
});
更好的模式是使用承诺。 $.ajax 方法 return 是一个承诺。然而,回调方法是了解处理异步代码的好起点。