如何检查AngularJS中是否选择了select

时间:2014-06-05 10:47:54

标签: angularjs

如何检查AngularJS中是否选择了select。我试着用

$scope.$watch

在这些选择的模型上,但我认为这不是很有效。

这是我当前解决方案的示例。 html:

<div ng-app>
<div ng-controller="testCtrl">
    <select ng-model="first">
        <option value="1">1</option>
        <option value="2">2</option>
    </select>
    <select ng-model="second">
        <option value="1">1</option>
        <option value="2">2</option>
    </select>
</div>
</div>

和JavaScript代码:

function testCtrl($scope) {
$scope.$watch('first + second', function () {
            if (angular.isDefined($scope.first) &&
                angular.isDefined($scope.second)
                ) {
               alert("user chose from the two drop downs.");
            }

        });
}

这是jsfiddle:

http://jsfiddle.net/zono/atN5n/1/

但我认为这个解决方案无效。

2 个答案:

答案 0 :(得分:2)

通常情况下,在控制器上设置手表被认为是不好的形式(它们在指令中工作得更好)。

在每个选项中,您都可以添加

<select ng-change="selectChanged()"...

然后在您的控制器中,您可以处理此事件,因为您打算使用手表

function testCtrl($scope) {
    $scope.selectChanged = function () {
        if (angular.isDefined($scope.first) &&
            angular.isDefined($scope.second)) {
            alert("user chose from the two drop downs.");
        }
    });
}

Working Fiddle

以下是有关此内容的更多信息:http://www.benlesh.com/2013/10/title.html

答案 1 :(得分:1)

提示: AngularJS正在提供ngFocusngBlur指令。