我的表单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,看看:
原文链接:https://www.f2er.com/angularjs/142460.html<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>
(不是玩具,不渲染)