带有一个对象的ng-options

时间:2015-05-12 08:14:23

标签: javascript angularjs

我有一个回调,它可以是一个包含多个对象的数组,也可以只是一个对象:

   $http.get($rootScope.appUrl + '/nao/abb/getStationData/' + selectedSupercustomer.superkund_id).success(function(data) {
        $scope.stationOptions = data;
        if($scope.stationOptions instanceof Array)
        {
            //Array of objects
            angular.forEach($scope.stationOptions, function(option) {
                console.log(option);
                if(option.nao_adsl_stationer_id === $scope.abbData.nao_adsl_stationer_id) {
                    $scope.selectedStation = option;
                }
            })
        }
        else
        {
            //Only one object
            if($scope.stationOptions.nao_adsl_stationer_id === $scope.abbData.nao_adsl_stationer_id) {
                $scope.selectedStation = $scope.stationOptions;
            }
        }
    });

如果它是一个包含多个对象的数组,我没有任何问题可以使用ng-options循环它们,但是当回调是一个对象时,如下所示:

{"nao_adsl_stationer_id":"33","namn":"Malm\u00f6 - Arl\u00f6v","stationskod":"ARV","ipserie_id":"","net":"","mask":"","ip":""}

它不起作用。

我使用像这样的ng-options:

 <td><select class="form-control input-sm2" ng-disabled="!selectedSupercustomer" ng-model="selectedStation" ng-options="item as item.namn for item in stationOptions" ng-change="onChangeStation(selectedStation)"><option value=''>Välj station</option></select></td>

1 个答案:

答案 0 :(得分:1)

要么返回一个只包含一个对象的数组(这样你就可以摆脱代码中的else部分),或者在else部分内部构造这个数组,如下所示

$scope.selectedOptions = [data];
$scope.selectedStation = $scope.stationOptions[0];