如何将对象数组分配给angularjs中的下拉列表?

时间:2017-05-26 09:14:00

标签: javascript angularjs

您好我正在开发angularjs中的Web应用程序。我有一个html表单,有几个下拉菜单。我正在进行api调用以填充数据。我没有在一次调用中单独调用,而是获取绑定所有下拉列表所需的所有数据。 以下是我的样本数据。

{"status":"Success","msg":"Success","code":"200","data":{"Education":[{"ID":1,"Education":"btech"},{"ID":2,"Education":"Bcom"},{"ID":3,"Education":"BA"},{"ID":6,"Education":"PU"}],"MaritalStatus":[{"ID":1,"MaritalStatus":"sinle"},{"ID":2,"MaritalStatus":"married"}]} 

我正在尝试将其绑定到下拉列表。

var martialstatus = new Array();
    var Education = new Array();
    $http.get(baseurl + 'api' + '/Customer/' + 'PersonalInfoMasters').success(function (data) {
        $.map(data.data, function (item) {
            Education.push(item[0]);
        });
        console.log(Education);
    }).error(function (status) {
    });

Abobe一段代码从每个对象中获取第一项,如教育,军事状态等第一项。我想将教育对象绑定到教育数组。我可以知道我在哪里缺少任何代码行吗?任何帮助,将不胜感激。

4 个答案:

答案 0 :(得分:2)

您似乎没有从原始结果中进行任何类型的映射,因此以下内容就足够了:

Education = data.data.Education;

注意:

  1. item[0]看起来很奇怪 - 你想要用它做点什么吗?
  2. 我会使用小写字母作为变量的名称。

答案 1 :(得分:1)

你可以这样做:

var martialstatus = new Array();
var Education = [];
$http.get(baseurl + 'api' + '/Customer/' + 'PersonalInfoMasters').success(function(data) {
  $.map(data.data.Education, function(item) {
      Education.push(item);
  });

}).error(function(status) {
});

您只需在item方法中推送item[0]而不是.map(),这样它就会占用整个Education对象并将其推送到您的数组中。

否则您可以使用而无需使用$.map()

Education = data.data.Education

答案 2 :(得分:1)

尝试这样的事情:

var MaritalStatus = new Array();
var Education = new Array();

$http.get(baseurl + 'api' + '/Customer/' + 'PersonalInfoMasters').success(function (data) {

    $.map(data.data.Education, function (item) {
        Education.push(item);
    });

    $.map(data.data.MaritalStatus, function (item) {
        MaritalStatus.push(item);
    });

}).error(function (error) {

    // handle API errors

});

如果您甚至不需要格式化输出,只需重新指定变量的原始值即可。

$http.get(baseurl + 'api' + '/Customer/' + 'PersonalInfoMasters').success(function (data) {

    Education = data.data.Education;
    MaritalStatus = data.data.MaritalStatus;

}).error(function (error) {

    // handle API errors

});

答案 3 :(得分:0)

不应该更像:

$.map(data.data.Education, function (item) {
        Education.push(item[0]);
    });