点击超链接
<a href="" ng-click="function(id)">{{id}}</a>
我需要根据我从ajax调用得到的响应(一个标志,比方说 - responseFlag)在新选项卡中打开一些内容。
我试过两种方法。
注意:功能取决于id,因此不能在页面加载时使用它。
1
$http.get(url).success(function(response) {
if(response.data.responseFlag==true){
$window.open("http://www.example.com");
}
else{
//perform something else other that window.open
}
});
这里的问题是&#39; Popup阻截者&#39;在浏览器(Chrome,Mozilla)中 - 阻止它们。
2
var w = $window.open("","_blank");
$http.get(url).success(function(response) {
if(response.data.responseFlag == true){
w.location = "http://www.example.com";
}
else{
//perform something else
}
});
此处,如果&#39; responseFlag = true&#39;,则会在新标签中打开。但正如你可能已经猜到的那样,对于'responseFlag = false&#39;标签打开了。我可以在&#39; else&#39;中使用w.close()也许。但我认为这不是解决方案。
帮帮我朋友!
答案 0 :(得分:0)
在您的第二个示例中,您在执行请求之前打开了新选项卡,因此执行回调并不重要,您将打开一个新窗口。 我没有看到任何理由为什么$ window.open(...)适用于你的第二个例子而不是第一个例子,也许是因为“_blank”参数......
那么,你能这样试试吗?
$http.get(url).success(function(response) {
if(response.data.responseFlag == true){
var w = $window.open("","_blank");
w.location = "http://www.example.com";
}
else{
//perform something else
}
});