Javascript 如何在每次从下拉菜单中选择项目时触发不同的功能

Javascript 如何在每次从下拉菜单中选择项目时触发不同的功能,javascript,angularjs,Javascript,Angularjs,我有一个下拉菜单,其中有一个值、两个值、三个值和三个不同的函数。当我选择一个值时,如何触发每个函数。例如,如果我选择一个函数,一个触发器如果我选择值,两个函数,两个触发器等等 <select class='mapDropDown' ng-options='x for x in name' ng-model='selectedFunction'> <option value=''> Please Select </option> </select>

我有一个下拉菜单,其中有一个值、两个值、三个值和三个不同的函数。当我选择一个值时,如何触发每个函数。例如,如果我选择一个函数,一个触发器如果我选择值,两个函数,两个触发器等等

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

您可以传递当前选定值
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) {
   eval(functionName+'()')
}

您可以传递当前选定值
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) {
   eval(functionName+'()')
}

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

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