Angular - 无法命名元素 - 如何访问$ focus等模型属性?

时间:2014-10-09 09:22:11

标签: javascript jquery angularjs

我使用自定义指令附加一些html,包括我必须引用的输入。问题是我无法命名这个输入。我需要获得$ focus财产。这该怎么做?我的意思是通常我会使用类似的东西:

ng-show="myForm.myElement.$focus"

但是因为我不可能找到像

这样的东西
ng-show="angular.getModelFor('#closestElement > input').$focus"

但当然这个功能不存在。有一个让我能够引用$元素本身,即

angular.element(document.querySelector('#closestElement > input'))

但这只给了我HTML / jQuery元素,它不包含必需的字段$ focus。如何以类似的方式引用它?

谢谢!

1 个答案:

答案 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;
>          }
>     } }]);