문제

Angular를 사용하여 Select 요소에서 기본값을 갖도록 노력하고 있습니다. 작동하지 않는 것 같습니다.내가 무엇을하는 일에 관계없이 데이터가 컨트롤러에 원격으로로드되는 경우 항상 빈 기본 요소를 선택합니다.

여기 내 HTML :

<select 
ng-options="Domain.Name for Domain in Domains"
ng-model="CurrentDomain"
ng-init="CurrentDomain = Domains[0]"
></select>
.

관련 컨트롤러 코드는 다음과 같습니다.

$scope.Domains = $resource('api/domain').query();
$scope.CurrentDomain = $scope.Domains[0];
.

나는이 질문이 여러 번 물어 왔음을 깨닫고 다른 모든 질문을 읽었지만 제안 중 어느 것도 작동하지 않는 것들이 아닙니다.누구든지 다른 제안이 있으면 알려주세요.

감사합니다.

도움이 되었습니까?

해결책

문제는 약속입니다.$scope.Domains는 약속하고 해결하기 위해 계류 중입니다.따라서 $scope.Domains[0]는 그 시점에서 정의되지 않습니다.

그래서 올바른 코드는 아래

var Domains = $resource('api/domain').query(function(){
    $scope.Domains = Domains;
    $scope.CurrentDomain = Domains[0];
});
.

plunkr version - "nofollow"> http://plnkr.co/edit/ppjswdkt4lhwvecy0pmc?p=preview

https://github.com/angular/angular.js/issues/4298 , ng-init는 더 이상 약속을 해결할 수 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top