기본값으로 설정 값 내부 ngSelect
-
21-12-2019 - |
문제
내가 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.i18n
대type
지만 설정type
하기lang.language
, 따라서 결과에서 경기에option
s 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
제휴하지 않습니다 StackOverflow