如何获取ng-options以在select上运行函数?

时间:2014-09-05 23:40:39

标签: javascript angularjs

当用户在下拉菜单中选择一个值时,我需要让我的控制器执行一些操作。

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

HTML:

<select ng-model="selectedThing" 

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

1 个答案:

答案 0 :(得分:0)

对于1.2.x

这样做的唯一方法似乎就是$watch

$scope.selectedThing
$scope.selectedThing = aThing;

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

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

对于1.3-beta

如果您想避免$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;
};