我的指令:AngularJS指令有時不叫
ppm.directive('focusMe', function($timeout) {
return {
link: function(scope, element, attrs) {
scope.$watch(attrs.focusMe, function(value) {
if(value === true) {
console.log('value=',value);
//$timeout(function() {
element[0].focus();
scope[attrs.focusMe] = false;
//});
}
});
}
};
});
有時指令調用,有時沒有。它可能位於相同的HTML文件中,其中一些元素可以具有標記,並且對於某些元素來說該指令被調用,而對於其他元素則不是。
focus-me="true"
我甚至有兩個不同的HTML文件具有相同的代碼,但對於其中一個指令從不調用。例如,此代碼可以在一個HTML文件中工作,而不在另一箇中。
<div class="row form-group">
<div class="col-xs-12" style="text-align:center;">
<button class="btn btn-default" ng-click="addMore();" tabindex="5" focus-me="true">
<span class="glyphicon glyphicon-plus button-add"></span>
Add more
</button>
</div>
</div>
什麼可能導致這種情況?控制器是否對指令做任何事情?這感覺很奇怪
http://stackoverflow.com/questions/14833326/how-to-set-focus- on-input-field >> $超時似乎需要給模態時間渲染。 –
這並沒有解決我的問題。 –