2014-10-15 10 views
12

moja forma select i ng-options pracował perfekcyjnie na angularjs 1.2.26, zawsze pokazując domyślny wybór jeśli toy.toy_container_name był dostępny w containers szyk. Jednak po uaktualnieniu do wersji 1.3.0 menu rozwijane wyboru nie pokazuje już domyślnego wyboru (takie samo zachowanie w Chrome, FF i Safari, aby nie powodować problemów przeglądarki). Mój test Selenium to zauważył, a teraz jestem zaskoczony, dlaczego. 1.3.0 nie ma żadnych wycofań ani zauważalnych zmian (od wersji 1.2.6), które mogłyby spowodować ten problem. Ponadto,angularjs 1.3.0 nie pokazuje domyślny wybór podczas ng-options referencje od wybierz inny model NG-modelu

Dalszym dokonywaniem tego zakłócenia jest inspekcja źródła, pokazująca poprawny wybór; Jednakże, wybierz pole rozwijane nie pokazuje wybrany domyślnie:

Chrome Elementy inspektora:

<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> 

EDIT: znalazłem problem:

Dlaczego poruszający „$ scope.toy = zabawka;' po pobraniu do kontenerów różnica w nowym Angular 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, status, headers, 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); 
+0

Czy można go tutaj skopiować? http://plnkr.co/edit/6GpDcNR792kLL0peEzrk?p=info – tasseKATT

+0

@tasseKATT zobacz zaktualizowany problem z aktualizacjami kodu, który rozwiązał problem. Nadal próbuję dowiedzieć się, dlaczego to spowodowałoby problem .... jakieś myśli? – user1322092

+0

Udało mi się odtworzyć sytuację. Działa w wersji 1.3.0-rc.5, ale nie w wersji 1.3.0, więc musi być czymś w najnowszym wydaniu. – tasseKATT

Odpowiedz

0

myślę, że trzeba czekać na odpowiedź od serwera, a następnie renderowanie DOM, wygląd:

<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> 

(nie toy nie render)

0

Dobrze myślę, że powinien użyj ng-init, aby wyświetlić domyślną wartość obciążenia.

<select class="form-control" ng-init="<value you want as default>" 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> 
Powiązane problemy