当ng选项引用不同模型与选择模型时,AngularJS 1.3.0不再显示默认选择

前端之家收集整理的这篇文章主要介绍了当ng选项引用不同模型与选择模型时,AngularJS 1.3.0不再显示默认选择前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的表单select和ng选项在AngularJS 1.2.26中工作得很好,如果容器数组中有toy.toy_container_name,则始终显示默认选择.但是,升级到1.3.0后,选择下拉菜单不再显示默认选择(Chrome,FF和Safari中的相同行为,因此不会出现浏览器问题).我的硒测试抓住了这一点,现在我为什么感到困惑. 1.3.0似乎没有任何可能导致此问题的贬低或显着变化(1.2.6).此外,
<select class="form-control" ng-model="toy.toy_container_name" ng-options="c.container_name as c.container_name for c in containers" required>
        <option value="">- Pick Container -</option>
</select>

进一步使这个混乱是对源的检查显示正确的选择;但是,下拉列表框不显示所选的默认值:

Chrome元素检查器:

<option value="" class="">- Pick Container -</option>
<option value="0">A-BIN</option>
<option value="1" selected="selected">B-BIN</option>
<option value="2">F-BIN</option>
<option value="3">G-BIN</option>

编辑:我发现问题:

为什么要移动’$scope.toy =玩具’在获取容器后,新的角度1.3.0有所不同?

$http({method: 'GET',url:'/toys/'+$stateParams.id}).success(function(toy,status,headers,config) {

        $scope.original = angular.copy(toy);
        //$scope.toy = toy; // WORKED in AngularJS 1.2.26 but not 1.3.0

        $http({method: 'GET',url:'/containers'}).success(function(containers,config) {
            $scope.toy = toy; // moved from where prevIoUsly commented; NOW works with AngularJS 1.3.0
            $scope.containers =  containers;
        }).error(errorMessage.onError);

}).error(errorMessage.onError);
我想你需要等待服务器的响应,然后渲染DOM,看看:
<div ng-if='toy'>
    <select class="form-control" ng-model="toy.toy_container_name" ng-options="c.container_name as c.container_name for c in containers" required>
        <option value="">- Pick Container -</option>
     </select>
</div>

(不是玩具,不渲染)

原文链接:https://www.f2er.com/angularjs/142460.html

猜你在找的Angularjs相关文章