我尝试在focus
请求的回调(then
函数)内的新标签窗口上设置http
,但它不起作用。即 -
$http.get('').then(function () {
that.myWin.focus(); // isn't focusing
})
我为此做了 demo ,按"打开"打开选项卡,然后按" Focus"把重点放在这个不起作用的标签上。
这是另一个demo,then
内的focus
工作正常。
如何使.template { display: none; }
功能正常运行?
我正在谷歌浏览器上进行测试。
答案 0 :(得分:1)
我知道这是一个很麻烦的问题,花了我几个小时,实际上我发现了一些有用的东西。
调试时我发现,如果我们尝试将标签重点关注时间超过1 sec
,则它不会关注标签。所以我假设在一秒钟内我应该访问that.myWin
对象,否则在1sec
选项卡聚焦后没有任何反应。
$scope.focus = function() {
//maintained flag for checking promise completed or not.
var promiseResolved = false; //by default false
// on each second I'm checking promise has resolved or not.
var interval = setInterval(function() {
if (promiseResolved) {
console.log('Going to focus tab')
clearInterval(interval); //clearing interval
that.myWin.focus(); //focusing tab
}
}, 1000); // 1sec interval because of above assumption
//ajax call using $http
$http.get('').then(function() {
//set flag to true when promise resolved
promiseResolved = true;
console.log("I'm here");
});
};
我知道我部分地想出了可能发生的事情,但任何人都可以指出,如果他们在我的回答中发现任何对错。我很感激帮助。感谢。