2016-06-28 7 views
0

하나, 둘, 셋, 세 개의 다른 기능을 가진 드롭 다운 메뉴가 있습니다. 예를 들어 하나의 값을 선택할 때 어떻게 각 기능을 트리거 할 수 있습니까? 내가 값을 등 두 가지 기능이 트리거드롭 다운 메뉴에서 항목을 선택할 때마다 다른 기능을 트리거하는 방법

<select class='mapDropDown' ng-options='x for x in name' ng-model='selectedFunction'> 
<option value=''> Please Select </option> 
</select> 

을 선택하면

function MyCtrl($scope) { 
     $scope.name = ['one', 'two', 'three'] 

     function one(){ 
     alert('you triggered first function') 
     } 

     function two(){ 
     alert('you triggered second function') 
     } 

     function three(){ 
     alert('you triggered second function') 
     } 
    } 

jsfiddle

답변

1

당신은 coul app.js 하나가 트리거 한 기능을 선택 d 현재 선택 값을 myFunction 메서드 & 전달하면 선택 상자를 변경하면 아래 메서드와 같은 다른 메서드를 호출하는 방법을 결정합니다. 동일하게 적용하려면 모든 기능을 범위에 배치해야합니다.

마크 업

<select class='mapDropDown' ng-options='x for x in name' ng-model='selectedFunction' 
    ng-change="myFunction(selectedFunction)"> 
    <option value=''> Please Select </option> 
</select> 

코드

당신이 서비스 안에 넣어 우리로 부를 수 $scope의 방법을 넣고 싶어하지 않는 경우
$scope.myFunction = function(functionName){ 
    $scope[functionName](); 
} 

첫 번째 접근법을 수행하고있었습니다. 당신이 컨트롤러가 아닌 범위에 추가하는 기능을 유지하려면, 당신은 jQuery로 각 믹싱 기능

$scope.myFunction = function(functionName) { 
    eval(functionName+'()') 
} 

Demo Fiddle

1
$('.mapDropDown').change(function(){ 
functionName = this.value; 

function(functionName){ 
    $scope[functionName](); 
} 
}) 
+0

아래에 사용할 수있는 대신, 사용 NG 변화 올바르지 않습니다 .. –

관련 문제