angular-modal-service set focus not working
angular-modal-service set focus not working的原因是没有正确设置焦点。解决方法是使用一个指令来在需要设置焦点的元素上进行设置,并在控制器中添加一个延时函数,以确保在显示模态框后再设置焦点。
具体实现如下:
首先,在需要设置焦点的元素上添加一个指令,命名为syncFocusWith:
app.directive('syncFocusWith', function($timeout, $rootScope) { return { restrict: 'A', scope: { focusValue: "=syncFocusWith" }, link: function($scope, $element, attrs) { $scope.$watch("focusValue", function(currentValue, previousValue) { if (currentValue === true && !previousValue) { $element[0].focus(); } else if (currentValue === false && previousValue) { $element[0].blur(); } }) } } });
然后,在模态框的控制器中添加一个延时函数,让模态框显示后再设置焦点:
$timeout(function() { $scope.isFocused = true; }, 500)
最后,在需要设置焦点的元素上添加sync-focus-with属性,并将其绑定到控制器中定义的变量isFocused上:
sync-focus-with="isFocused"
通过以上步骤,解决了angular-modal-service set focus not working的问题。