我试图通过角度和打字稿来获取当前输入焦点。 我正在使用 angular.element([selector])。focus(handler)函数,但是当我点击输入时它不会触发。
这是我的代码:
class TemplateController {
lastFocused: HTMLInputElement;
static $inject = ['$scope'];
constructor(private $scope: ng.IScope) {
angular.element("input[type='text']").focus((): void => {
this.lastFocused = document.activeElement as HTMLInputElement;
console.log("FOCUSED");
});
}
}
angular
.module("app")
.controller("[...]templateController", TemplateController);
}
这是我的html(输入代码段):
...
<input class="form-control" type="text" id="title" name="title" size="30" ng-maxlength="1000" required />
...
我做错了什么?
提前致谢:)
编辑:已解决
我能够通过在输入元素上使用 ng-focus 属性来解决这个问题:
<input class="form-control" type="text" id="title" name="title" size="30" ng-maxlength="1000" required ng-focus="templateCtrl.setFocusedElement()" />
并在控制器内部:
setFocusedElement(): void {
this.$scope.lastFocused = document.activeElement;
}
这适用于我:)
答案 0 :(得分:1)
尝试
angular.element('input').triggerHandler('focus');
或者如果它不起作用
angular.element('input').triggerHandler('click');