以下是我的代码片段,其中我需要根据复选框值来聚焦输入字段,如果我选中复选框,它应该聚焦第二个元素,它不知何故不起作用。让我知道我在Angular中做错了什么。
注意 - 我已经使用指令检查了几个例子,但我想知道我在这里缺少的概念/代码等
<input type="checkbox" ng-model="vm.check" />
<br>
<input type="text" ng-model="vm.input1" />
<input type="text" ng-model="vm.input2" ng-focus="vm.check" />
<input type="text" ng-model="vm.input3" />
Plnkr代码 - http://plnkr.co/edit/q15Jht9AsVj60xrutVfm?p=preview
答案 0 :(得分:7)
ngFocus
无法按照您的想法运作。 ngFocus
下的表达式是在输入焦点上触发的,就是全部。
如果要根据var的状态对其进行聚焦,则应使用指令。示例:
myApp.directive('syncFocusWith', function($timeout, $rootScope) {
return {
restrict: 'A',
scope: {
focusValue: "=syncFocusWith"
},
link: function($scope, $element, attrs) {
$scope.$watch("focusValue", function(currentValue, previousValue) {
if (currentValue === true && !previousValue) {
$element[0].focus();
} else if (currentValue === false && previousValue) {
$element[0].blur();
}
})
}
}
});
并更新您的html以使用此指令:
<input type="text" ng-model="vm.input2" sync-focus-with="vm.check"/>
致Alex from Emberex.com分享此代码段的信用。
答案 1 :(得分:5)