【发布时间】:2017-06-13 04:43:45
【问题描述】:
从选择框中选择选项后,我试图将焦点设置在输入类型文本上。选择选项后,它将输入聚焦纳秒,然后再次聚焦在选择框上。
这是fiddle。
这里是代码
<div ng-controller="MyCtrl" layout layout-align="center center">
<md-select ng-model="myModel" placeholder="Pick" ng-change="onChange()" md-on-open="onOpen()">
<md-option value="0">Zero</md-option>
<md-option value="1">One</md-option>
</md-select>
<input type="text" id="fc">
</div>
<script>
angular.module('MyApp', ['ngMaterial'])
.controller('MyCtrl', function ($scope) {
$scope.onChange = function() {
document.getElementById('fc').focus();
};
$scope.onOpen = function() {
document.getElementById('fc').focus();
};
})
</script>
【问题讨论】:
-
这似乎与角度材料下拉菜单有关......但我不确定是什么原因造成的。如果您使用标准的 HTML 选择它工作正常。我确实注意到这适用于 md-select,但不再使用 $scope.$watch 不是一个好习惯。
$scope.$watch('myModel', function() { $document[0].getElementById('fc').focus(); }); -
@sledsworth 是的,它的棱角材料。试图用有角度的材料来实现这一点。 $watch 有什么问题?
-
说没有问题,但是随着 Angular 1.5 和 > 的发布,无论如何,根据我的理解,建议使用组件生命周期钩子而不是使用 $watch。
-
我尝试使用 $watch,它不起作用。
-
你确定将 $document 和 $scope 注入你的控制器了吗?
标签: javascript angularjs angularjs-material