2014-09-05 57 views
0

当用户在下拉菜单中选择一个值时,我需要让我的控制器执行一些操作。如何获得ng选项来选择运行功能?

编辑:1.3提供getterSetterngModelOption,但我需要使用1.2.x.编辑删除错误的1.3兼容的代码。

HTML:

<select ng-model="selectedThing" 

     ng-options="thing.name for thing in allThings"> 
</select> 
+0

不该”它是'getterSetter'的大写字母吗? – PSL 2014-09-05 23:41:45

+0

适用于我.. http://plnkr.co/edit/o2AuIl?p=preview你有其他问题检查你的控制台是否有任何错误。那么你使用的角度版本是否支持它?尝试在重击中复制您的问题 – PSL 2014-09-05 23:47:53

+0

控制台中没有错误,这很奇怪。我现在和你的朋友一起玩。 – ray 2014-09-05 23:52:17

回答

0

对于1.2.x的

只有做到这样,似乎是$watch荷兰国际集团的$scope.selectedThing

$scope.selectedThing = aThing; 

$scope.$watch('selectedThing', function() { 
    //do stuff here 
}); 

一旦你在下拉列表中选择一个值,这将触发。

1.3-β

如果你想避免$watch荷兰国际集团的变量,那么你可以使用即将ngModelOptions

<select ng-model="selectedThing" 
     ng-model-options="{getterSetter:true}" 
     ng-options="thing.name for thing in allThings"> 

而在你的控制器:

currentThing = aThing; 

$scope.selectedThing = function (newThing) { 
    if (angular.isDefined(newThing)) { 
     console.log("setting new Thing", newThing); 
     currentThing = newThing; 

    } 
    return currentThing; 
};