在我的应用程序中(是的,我知道这有点不好)在控制器中有这样的代码:
$scope.changePasswordModal = function() {
angular.element('#password-change').modal('show');
};
此代码如此显示:
if(angular.isDefined($routeParams.chgkey)){
$scope.changePasswordModal();
}
我有这样的观点:
<div class="modal custom" id="new-password-remember" tabindex="-1" role="dialog" aria-labelledby="newPasswordRemember" aria-hidden="true" modal-center modal-auto-focus modal-auto-focus-type="1" modal-auto-focus-action="rememberpwd" data-backdrop="static">
....
我在这个视图上也有一些其他的模态形式:当我点击打开模态时 - 一切正常:显示焦点。但是当我打开页面并通过动作在控制器中打开时,我看到它有焦点,但是为什么没有显示这个焦点?
指令:
.directive('modalAutoFocus', ['$timeout', '$window', function ($timeout, $window){
return {
restrict: 'EA',
link: function(scope, element, attrs) {
if (attrs.id == 'new-password-change'){
element.find('.on-focus')[0].focus();
}
$(element).on('shown.bs.modal', function(){
element.find('.on-focus')[0].focus();
});
}
}
}]);
我不明白什么是坏的...为什么没有显示焦点?我做错了什么?
谢谢
答案 0 :(得分:1)
我遇到了同样的问题并且代码修复了它:
$timeout(function(){
element.find('.on-focus')[0].focus();
}, 0);