我使用自定义指令附加一些html,包括我必须引用的输入。问题是我无法命名这个输入。我需要获得$ focus财产。这该怎么做?我的意思是通常我会使用类似的东西:
ng-show="myForm.myElement.$focus"
但是因为我不可能找到像
这样的东西ng-show="angular.getModelFor('#closestElement > input').$focus"
但当然这个功能不存在。有一个让我能够引用$元素本身,即
angular.element(document.querySelector('#closestElement > input'))
但这只给了我HTML / jQuery元素,它不包含必需的字段$ focus。如何以类似的方式引用它?
谢谢!
答案 0 :(得分:0)
为了获得$ focus属性,为什么不能使用ng-focus指令来实现你的功能。
如果你想要元素的$ focus属性,使用指令链接函数你将获得ele。
Testing focus() on an element in an AngularJS directive template
> <div ng-app="App" ng-controller="Ctrl">
> Name: <input ng-focus="errors('hide')" ng-blur="errors('show')" />
> <p ng-show="!showErrors">focus</p>
> <p ng-show="showErrors">blur</p> </div>
>
> angular.module('App', []) .controller('Ctrl', ['$scope',
> function($scope){
> $scope.showErrors = true;
>
> $scope.errors = function(action){
> if(action==="show"){
> $scope.showErrors = true;
> }else{
> $scope.showErrors = false;
> }
> } }]);