2015-01-05 3 views
0

자주 묻는 질문이지만 많은 블로그 및 stackoverflow 질문을 확인한 후에 대답을 알 수 없습니다.
선택 상자에서 기본값을 선택하고 선택 값을 서버 ($ resource)에서 가져옵니다. 목록이 아직 없기 때문에 컨트롤러에서 select의 ngModel을 설정할 수 없습니다 (약속 만있는 경우). 또한 ngInit을 구성하려했지만 성공하지 못했습니다.AngularJS - select - 서버 호출시 기본값

아무도 서버의 목록에서 첫 번째 요소로 선택의 기본값을 설정하는 방법을 도울 수 있습니까?

답변

1

당신은 아마 그런 식으로 뭔가를 할 수 있습니다

<select ng-model="selectedValue" ng-options="o.value for o in values"> 

을 그리고 약속의 대가 :

scope.values = response.data; 
scope.selectedValue = scope.values[0]; 
+0

안녕 Digix, 응답 주셔서 감사합니다! 나는 통신을 위해 서비스를 사용하고 있으며 나는 이미 그 서비스에서 약속을 처리하고있다. 그것은 모든 통신을위한 일반적인 서비스이므로 콤보 상자에 먹일 때 약속을 '덮어 쓸'수 없습니다. – Viktor

+0

어쩌면 당신은 myService = {model : {data : null, selectedValue : null}}과 같은 서비스에서 "모델"을 노출 할 수 있고, 그 모델을 scope.model = myService.model과 같은 컨트롤러 범위에 넣을 수 있습니다. – Digix

0
당신은 약속이 완료 될 때까지 선택 입력을 숨기고 후에 만 ​​그것을 보여줄 수

. 내 약속이 모두 끝날 때까지 보통 로더 gif를 표시하고 페이지에 빈 영역이 없도록 모든 내용을 표시합니다. 또한 ng-model의 값을 옵션 값 중 하나와 동일하게 설정해야합니다.

+0

안녕하세요, Cristi, 응답 해 주셔서 감사합니다! 나는 통신을 위해 서비스를 사용하고 있으며 나는 이미 그 서비스에서 약속을 처리하고있다. 그것은 모든 통신을위한 일반적인 서비스이므로 콤보 상자에 먹일 때 약속을 '덮어 쓸'수 없습니다. 다른 해결책이 있습니까? 나는 그런 문제를 다루기위한 '기본 제공 (built-in)'솔루션이 있다고 생각했다. – Viktor

+0

약속을 해결할 때'ngModel'의 값을 설정할 수 있습니다. 코드 스 니펫을 게시 할 수 있습니까? Btw, 누군가가 [여기] 같은 질문을 (http://stackoverflow.com/questions/27789006/select-directive-not-selecting-option-when-options-are-loaded-asynchronously/27789359?noredirect=1#comment43991499_27789359) –