微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当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.jb51.cc/angularjs/142460.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐