在HTTP请求后更改所选选项。角

时间:2018-05-18 20:54:59

标签: angularjs

使用角度我明白你可以通过将值赋给模型来选择一个选项。

$scope.options = optionArray[0];

在ajax / http请求之后也可以这样做。

$scope.onChange = function(id) {
    $http.get('/API/GetJSONFor?id=' + id)
        .then(function (response) {
            $scope.optionArray = response.data;
            $scope.options = response.data[0].Value;
        });
}

但是,如果response.data [0]中的值不在optionArray预重新分配中。 Angular将附加它的cruddy null选项并将其设置为选中。 这有什么工作吗?到目前为止,这个null选项一直是处理角度最麻烦的事情之一。

修改

<select class="form-control" name="Options" id="Options" ng-model="options" ng-change="onChange(options)">
    <option ng-repeat="option in optionsArray" value="{{option.Value}}">{{option.Text}}</option>
</select>

1 个答案:

答案 0 :(得分:0)

ngOptions元素上使用ngRepeat而非option

<select 
    class="form-control" 
    name="Options" 
    id="Options" 
    ng-model="options" 
    ng-change="onChange(options)" 
    ng-options="option.Value as option.Text for option in optionsArray">
</select>

由于您的模型设置为.Value属性,因此当您要分配时,需要将.Value属性分配回模型:

$scope.onChange = function(id) {
    $http.get('/API/GetJSONFor?id=' + id).then(function (response) {
        $scope.optionArray = response.data;
        $scope.options = response.data[0].Value;
    });
}