2016-07-16 68 views
0

我正在使用指令來創建文本框,並且只希望第一個文本框處於焦點狀態。 我正在使用另一條指令進行焦點。這是腳本:通過角度指令不應用於文本框的聚焦

<script> 
angular.module('MyApp',[]); 
angular.module('MyApp').controller('myController',myController); 
angular.module('MyApp').directive('myDirective',myDirective); 

angular.module('MyApp').directive('textBoxDirective',textBoxDirective); 

function myController() 
{ 

} 



function myDirective() 
{ 
    return{ 

     restrict: 'A', 
     scope:{ 
       abcd:'=' 
     }, 
      link : function(scope, $element) { 
       console.log(""+scope.abcd); 
       if(scope.abcd=='true'){ 
        $element[0].focus(); 
       } 


       } 
    }; 
} 

function textBoxDirective() 
{ 
    return{ 
     scope:{ 
      efgh:'@' 
     }, 
     restrict: 'A', 
     template: '<input type="text" data-my-directive="" data-abcd="efgh">' 

    }; 
} 

</script> 

這是HTML:

<body data-ng-app="MyApp" data-ng-controller="myController"> 

<div data-text-box-directive="" data-efgh="true"></div> 
<div data-text-box-directive=""></div> 
<div data-text-box-directive=""></div> 
</body> 

我得到的abcd值在myDirective一次真實與undefined兩次記錄,但仍然聚焦不適用於第一個文本框。我在這裏做錯了什麼?有人可以幫忙嗎?

回答

0
$timeout(function() { 
    if($element && $element[0]){ 
    $element[0].focus(); 
    } 
});