2016-09-29 4 views
0

각도 선택 요소에 '트랙 기준'으로 작업하려면 '선택'을 얻으려고 애쓰는 중입니다. 나는 선택 다음과 같습니다이 JS와각도 선택 '트랙 기준'재설정 선택

<select id="licenseType" ng-model="selectedLicense" 
      ng-options="key for (key, value) in licenseMap track by key" 
      ng-change="doUpdate()"> 
    </select> 

: 나는 '키를 사용하여 트랙을 제거 할 때

$scope.selectedLicense = $scope.licenseMap["Please Select"]; 

위의 JS 작동 - 초기 선택은 미리 도착합니다. '키로 추적'을 사용하면 사전 선택이 비어 있습니다. 선택된 가치를 얻으려면 '열쇠로 추적'이 필요합니다. 지금까지 성공한 유일한 방법입니다. 지금까지 작동하지 않았던 조합을 다음과 같이 시도했습니다.

/* 
var license = document.getElementById('licenseType'); 
license.options.selectedIndex = 1; 
license.options[license.options.selectedIndex].selected = true; 
$("#licenseType").val("Please Select"); 
$('#licenseType').children('option[value="1"]').attr('selected', true);  
*/ 

여기서 도움을 얻을 수있는 점을 높이 평가합니다. 고맙습니다.

+0

왜 추적해야합니까? doUpdate()에서 selectedLicense에 액세스하여 선택된 값을 바로 가져올 수 있어야합니다. – Dylan

+0

@ user2917629 : 내 선택은 다차원 배열이며 트랙 비가 선택된 키를 유지하는 유일한 트릭입니다. 그렇지 않으면 배열을 다시 가져옵니다. – user2917629

답변

2

는 다음과 같이 수행 http://codepen.io/alex06/pen/XjarJd

div(data-ng-app="app") 
div(ng-controller="appController") 
    select.form-control(ng-model="selectedItem", ng-options="option.value as option.name for option in typeOptions track by option.value" ng-init="selectedItem=typeOptions[0]") 


(function(){ 
    'use strict' 
    angular 
    .module('app', []) 
    .controller('appController', ['$scope', function($scope){ 

     $scope.typeOptions = [ 
     { name: 'Feature', value: 'feature' }, 
     { name: 'Bug', value: 'bug' }, 
     { name: 'Enhancement', value: 'enhancement' } 
     ]; 
    }]) 
})() 

예는 옥에서 만들어진,하지만 여전히 대신에 당신은 또한 할 수있는 배열의 객체와 작업 할 경우는, 그런데 거의 같은 syntax.By 야한다 다음을 수행하십시오 :

<!DOCTYPE html> 
<html ng-app="app"> 

<head> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.min.js">    </script> 
    <link rel="stylesheet" href="style.css" /> 
    <script type="text/javascript"> 
    angular.module('app', []) 
     .controller('IndexCtrl', ['$scope', function($scope) { 
     $scope.types = { 
      1: "value1", 
      2: "value2", 
      5: "value3" 
     }; 
     }]); 
    </script> 
    </head> 
    <body ng-app="app" ng-controller="IndexCtrl"> 
    <select ng-model="type" ng-options="k as v for (k, v) in types"> 
     <option value="">Please select</option> 
    </select> 
    </body> 

</html> 
+0

방금 ​​ng-init = "selectedItem = typeOptions [0]"을 (를) 사용하여 시도했습니다. 내 자신의 데이터 참조,하지만 여전히 행운. – user2917629

+0

업로드 한 예제가 배열을 사용하고 있다는 것에주의하십시오. 나는 평범한 개체를 사용하고 있다고 생각합니다. 그래서 펜으로 배열을 업로드 한 다음 다른 객체로 펜을 업로드 한 것입니다. 값없이 기본 옵션을 선택하기 만하면 두 번째 예제를 사용하십시오. – AlexP

+0

을 선택하십시오. 그러나 다차원 배열로 작업하고 있기 때문에 미리 선택하지 않습니다. – user2917629