문제

내가 ngSelect 와 몇 가지 옵션에서 그것.

<select data-ng-model="type" data-ng-change="option(type)">
   <option data-ng-repeat="type in languages" value="{{type.i18n}}">
        {{type.language}}
    </option>
</select>

컨트롤러

angular.module('navigation', [])
.controller('NavCtrl',['$scope','$translate', function($scope,$translate){

    $scope.option = function(type){
        console.log(type) //this display the i18n value of languages
        $translate.use(type);
    }

    $scope.languages = [
        { language: "English", i18n: "en_EN"},
        { language: "Swedish", i18n : "se_SE" }
    ];
}])

내가 원하는 ngSelect 하는 기본 옵션을 제 경우:"영어".려 노력했다는 설정:

$scope.type = $scope.languages[0].language; // English
$scope.type = $scope.languages[0]; //The whole darn json object.

제발 도와 드릴까요?

도움이 되었습니까?

해결책

이 방법을 사용해보십시오

<select  ng-model="selectedlanguage" ng-change="option(this.selectedlanguage)"  ng-options="i.language for i in languages">
            </select>
.

// JS 코드

angular.module('navigation', [])
.controller('NavCtrl',['$scope','$translate', function($scope,$translate){

    $scope.option = function(type){
        console.log(type) //this display the i18n value of languages
        $translate.use(type);
    }

    $scope.languages = [
        { language: "English", i18n: "en_EN"},
        { language: "Swedish", i18n : "se_SE" }
    ];

    **$scope.selectedlanguage = $scope.languages[0];**
}])
.

다른 팁

ngSelected를 사용하는 것은 어떨까요? http://docs.angularjs.org/api/g/directive/ngselected

<option ng-selected="$index==0"></option>
.

또는

<option ng-selected="type.language=='English'"></option>
.

동작하는 예제: http://plnkr.co/edit/yv8gew3IDGxjH666UmlC?p=preview

<select data-ng-model="selectedType">
  <option data-ng-repeat="lang in languages" value="{{lang.i18n}}">
    {{lang.language}}
  </option>
</select>

JS:

.controller('NavCtrl',['$scope', function($scope){

    $scope.$watch('selectedType', function(type){
        if (!type) return;
        console.log(type) //this display the i18n value of languages
        // $translate.use(type);
    });

    $scope.languages = [
        { language: "English", i18n: "en_EN"},
        { language: "Swedish", i18n : "se_SE" }
    ];

    $scope.selectedType = $scope.languages[0].i18n;
}]);

Notes:

  • 제거 $translate 서비스에 대한 용이성을 재생합니다.
  • 변경되었는 ng-changed 콜백을 $watch$scope 하지만 단순히 심미적인 선택입니다.
  • 중요한 변경되었는 당신이 선택 lang.i18ntype 지만 설정 type 하기 lang.language, 따라서 결과에서 경기에 options list.

나는 그것을 답변으로 남겨 둘 것으로 댓글에 대한 평판이 충분하지 않습니다.

Ramesh Rajendran 대답은 맞지만 다른 ngOptions 구문을 사용하여 시도했습니다. label for value in array 구문을 사용하는 경우 모델 속성을 전체 객체에 바인딩해야합니다. 댓글의 구문을 사용하는 경우 select as label for value in array 인 경우 모델을 선택에 바인딩해야합니다.

단어, 그의 예제가 작동하며, 댓글의 예를 들어 $scope.selectedlanguage = $scope.languages[0];$scope.selectedlanguage = $scope.languages[0].i18n;

을 대체해야합니다.

지시문 문서 선택 선택

이것은 나를 위해 일했습니다 :

$scope.prop = { "values": 
[ {name:'hello1',id:1},{name:'hello2',id:2},{name:'hello3',id:3}] };
$scope.selectedValue = 2; 

<select ng-model="selectedValue" ng-options="v.id as v.name for v in prop.values">
    <option selected value="">Select option</option>
</select>
.

라이브 예제 : Plunker

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