我和Angularjs合作,我遇到了问题。函数$ window.open(/ somewhere)在PC浏览器和移动浏览器上运行良好。但是有1例它没有用。请帮助看下面的内容:
$window.open("https://www.myurl.com"); // OUTSIDE OF REQUEST - no problems
$https({
type: "GET",
url: "backendURL",
data: jsonData,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
$window.open("https://www.myurl.com"); //This doesn't work.
},
error: function(msg) {
//alert(error);
}
});
请注意,移动浏览器只会发生这种情况:chrome和safari(我没有为其他人测试)所以我想也许有人有这方面的经验。请帮助和建议。
谢谢...
答案 0 :(得分:3)
我在网上找到了这个解决方案,希望它能帮到你。在回调函数之前执行var win = window.open();
,然后在.success
内部,通过win.location = url;
更改网址。这应该可以解决问题。
答案 1 :(得分:1)
我认为最重要的问题与"this" scope in JavaScript有关。如果您能够使用ES6版本的JavaScript中的arrow functions,则只需执行
即可success: (msg)=>{
$window.open("https://www.myurl.com");
}
我想大多数人都没有这个选择。在这种情况下,你可以做一些类似于Yabin建议的事情:
//somewhere else in code.
var scopedWindow = $window;
//
success: function(msg){
scopedWindow.open("https://www.myurl.com");
}