Javascript 如何在angularjs中将数组数据绑定到下拉列表?

Javascript 如何在angularjs中将数组数据绑定到下拉列表?,javascript,angularjs,Javascript,Angularjs,嗨,我正在用angularjs开发web应用程序。我正在尝试将数据绑定到drodpown。我正在进行ajax调用以从服务器获取数据。我遇到错误,无法读取未定义的属性“length”。我正在提出请求。这是我的api 以上api将返回 {"status":"Success","msg":"Success","code":"200","data":[{"ID":1,"Nationality":"indian"},{"ID":2,"Nationality":"england"}]} 我使用js进行绑定

嗨,我正在用angularjs开发web应用程序。我正在尝试将数据绑定到drodpown。我正在进行ajax调用以从服务器获取数据。我遇到错误,无法读取未定义的属性“length”。我正在提出请求。这是我的api

以上api将返回

{"status":"Success","msg":"Success","code":"200","data":[{"ID":1,"Nationality":"indian"},{"ID":2,"Nationality":"england"}]}
我使用js进行绑定,如下所示

  var url = cfg.Baseurl;
            var nationality = new Array();
            $http.get(url + 'api' + '/Customer/' + 'Nationalities').success(function (data) {
                $.map(data.data.Nationality, function (item) {
                    nationality.push(item);
                    console.log(item);
                });
                $scope.nationalityList = nationality;
            }).error(function (status) {
            });
这是我的html代码

   <select ng-model="user.nationality" id="brand" ng-options="user.nationality for user in nationalityList" required>
                            <option value="" label="Select">Select</option>
                        </select>

挑选
我最后遇到了无法读取未定义错误的属性“length”。任何帮助都将不胜感激。多谢各位

希望这有助于:

使用
$scope.anArray=[]

$http
响应将数据绑定到数组

例如:

我确信您使用的是Json对象响应

希望这有助于:

使用
$scope.anArray=[]

$http
响应将数据绑定到数组

例如:

我确信您使用的是Json对象响应

这是演示链接

JS代码

  var app = angular.module('myApp', []);

  app.controller('ctrl', function($scope) {
    $scope.nationalityList = {
      "status": "Success",
      "msg": "Success",
      "code": "200",
      "data": [{
        "ID": 1,
        "Nationality": "indian"
      }, {
        "ID": 2,
        "Nationality": "england"
      }]
    };
  });
**HTML**

  <div ng-app='myApp'>

    <div ng-controller='ctrl'>
      <select ng-model="user.nationality" id="brand" ng-options="user.Nationality for user in nationalityList.data" required>
        <option value="" label="Select">Select</option>
      </select>
      <span>nationality = {{user.nationality}}</span>
    </div>
  </div>

挑选
国籍={{user.nationality}
希望这对您有所帮助

这是演示链接

JS代码

  var app = angular.module('myApp', []);

  app.controller('ctrl', function($scope) {
    $scope.nationalityList = {
      "status": "Success",
      "msg": "Success",
      "code": "200",
      "data": [{
        "ID": 1,
        "Nationality": "indian"
      }, {
        "ID": 2,
        "Nationality": "england"
      }]
    };
  });
**HTML**

  <div ng-app='myApp'>

    <div ng-controller='ctrl'>
      <select ng-model="user.nationality" id="brand" ng-options="user.Nationality for user in nationalityList.data" required>
        <option value="" label="Select">Select</option>
      </select>
      <span>nationality = {{user.nationality}}</span>
    </div>
  </div>

挑选
国籍={{user.nationality}

希望这能帮助您解决问题

在这种情况下,不需要映射,它只指定数组的值

var url = cfg.Baseurl;
var nationality = [];
$http.get(url + 'api' + '/Customer/' + 'Nationalities')
.success(function (data) {
    if(data.data) {
        // Here the value is assigned
        $scope.nationalityList = data.data;
    }
}).error(function (status) { });
你的html必须是这样的

<select
    ng-model="selectedNationality"
    id="brand"
    ng-options="item.Nationality for item in nationalityList" 
    required>
    <option value="" label="Select">Select</option>
</select>
<!-- Showing selected option -->
<p ng-if="selectedNationality">Selected option: {{selectedNationality}}<p/>

挑选

所选选项:{{selectednational}}


有关详细信息

在这种情况下,无需映射,它只指定数组的值

var url = cfg.Baseurl;
var nationality = [];
$http.get(url + 'api' + '/Customer/' + 'Nationalities')
.success(function (data) {
    if(data.data) {
        // Here the value is assigned
        $scope.nationalityList = data.data;
    }
}).error(function (status) { });
你的html必须是这样的

<select
    ng-model="selectedNationality"
    id="brand"
    ng-options="item.Nationality for item in nationalityList" 
    required>
    <option value="" label="Select">Select</option>
</select>
<!-- Showing selected option -->
<p ng-if="selectedNationality">Selected option: {{selectedNationality}}<p/>

挑选

所选选项:{{selectednational}}


有关详细信息

,由于未初始化
$scope.nationalityList
,因此在渲染视图时未定义它。因此,错误
无法读取未定义错误的属性“length”。


只需将变量初始化为空数组即可解决此错误

由于未初始化
$scope.nationalityList
,因此在呈现视图时未定义它。因此,错误
无法读取未定义错误的属性“length”。

$.map(data.data.Nationality, function (item) {
                    nationality.push(item);
                    console.log(item);
                });
只需将变量初始化为空数组即可解决此错误

$.map(data.data.Nationality, function (item) {
                    nationality.push(item);
                    console.log(item);
                });
data.data.National无效,因为data.data是数组而不是对象 因此,国籍=数据 行吗

data.data.National无效,因为data.data是数组而不是对象 因此,国籍=数据
如果在控制器中工作正常

,是否可以尝试将阵列初始化为空阵列
$scope.nationalityList=[]
在控制器中,是否可以尝试将阵列初始化为空阵列<代码>$scope.nationalityList=[]