当用户在下拉菜单中选择一个值时,我需要让我的控制器执行一些操作。
编辑:1.3提供getterSetter
ngModelOption
,但我需要使用1.2.x.编辑删除错误的1.3兼容代码。
HTML:
<select ng-model="selectedThing"
ng-options="thing.name for thing in allThings">
</select>
答案 0 :(得分:0)
这样做的唯一方法似乎就是$watch
:
$scope.selectedThing
$scope.selectedThing = aThing;
$scope.$watch('selectedThing', function () {
//do stuff here
});
在下拉列表中选择一个值后,将触发。
如果您想避免$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;
};