我有一个切换变量显示搜索面板的函数,当面板可见时,我需要调用resize函数来刷新ACE编辑器(面板制作编辑器更小)。
在html中我有:
<div class="search-panel" ng-show="searchReplace">
<button type="button" ng-click="search(false)" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<form name="searchForm">
...
我的搜索功能如下:
var prev_search;
$scope.search = function(toggle, replace) {
var refresh = $scope.searchReplace != toggle;
if (toggle) {
if ($scope.searchReplace) {
// next search
if ($scope.selectedSearchText != prev_search) {
// new search
} else {
// continue
}
} else {
$scope.searchReplace = true;
$scope.replaceMode = !!replace;
}
} else {
$scope.searchReplace = false;
}
if (refresh) {
editor.resize();
}
};
我在keydown事件中调用该函数:
$(document.documentElement || window).keydown(function(e) {
if (e.ctrlKey) {
if (e.which == 82) { // CTRL+R
$scope.$apply(function() {
$scope.search(true, true);
});
} else if (e.which == 81) { // CTRL+Q to test resize - it's working
editor.resize();
} else if (e.which == 70) { // CTRL+F
$scope.$apply(function() {
$scope.search(true);
});
e.preventDefault();
}
}
});
答案 0 :(得分:0)
我最终使用了jQuery show / hide并在之后调用了resize。