2016-06-28 46 views
0

我有一個下拉菜單,數值爲1,2和3以及三個不同的函數當我選擇一個值時,如何觸發每個函數選擇一個功能一個觸發如果我選擇值的兩個函數的兩個觸發器等如何觸發一個不同的功能,每次從下拉菜單中選擇一個項目

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

app.js

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

你庫侖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.myFunction = function(functionName){ 
    $scope[functionName](); 
} 

如果你不希望把在$scope方法,你可以把它們放在裏面的服務,並呼籲他們爲我們正在爲第一種方法做準備。如果你想留功能有在控制器,而不是在範圍添加,你可以使用下面的功能

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

Demo Fiddle

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

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

混合角與jQuery是不正確的,使用NG-的變化,而不是.. –

相關問題