我要做的就是在链接到外部站点的部分html内包含一个定位标记。如果是这个标准的html,代码将简单地是:
<a href="http://www.google.com" target="_blank">google</a>
就这么简单,我似乎找不到一个可行的解决方案来克服角度拦截路线(或者无意间用https://docs.angularjs.org/api/ng/directive/a指令替换我的锚点?) 。
我遍历了SO和整个Web的其余部分,并看到了无数的解决方案:同一个域内的链接,SPA中的路由,页面内的路由(ala $ anchorScroll),但这些都不是我真正的问题。
我怀疑它可能与使用$ sce有关,但是我是Angular n00b,并且不确定如何正确使用该服务。我在视图控制器中尝试了以下操作:
$scope.trustUrl = function(url) {
return $sce.trustAsResourceUrl(url);
}
与相应的:
<a ng-href="{{ trustUrl(item) }}">Click me!</a>
(如此处所述:在angularjs模板中绑定外部URL)
但这似乎并不能解决问题(我最终在呈现的页面中只有href =“ {{”)。
使用普通的香草锚链接,如下所示:
<a href="http://www.google.com">google</a>
也没有做到这一点(即使一些在线人士建议标准href会导致整个页面重新加载angular:AngularJS-如何在整个页面加载时进行重定向?)。
我也尝试添加target = _self“属性,但这似乎也没有任何效果。
我是否需要按照此处所述编写自定义指令?
有条件地将target =“ _ blank”添加到Angular JS的链接
对于这样一个简单的操作,这一切似乎都太复杂了,我觉得我错过了一些显而易见的东西,至少我希望如此,因为仅链接到另一个URL的过程非常繁琐。
在此先感谢您提供任何解决方案,建议,参考或指导。
事实证明,实际上我确实将页面中的所有锚链接绑定到事件侦听器并被覆盖。由于该代码是页面工作方式的基础,所以我不想弄乱它。取而代之的是,我使用ng-click绕过了它,如下所示:
HTML:
<a class="navLinkHcp" href="{{hcpurl}}" title="Habitat Conservation Plan" target="_blank" ng-click="linkModelFunc(hcpurl)">Habitat Conservation Plan</a>
控制器:
$scope.hcpurl = 'http://eahcp.org/index.php/about_eahcp/covered_species';
$scope.linkModelFunc = function (url){
console.log('link model function');
$window.open(url);
}
瞧!好去。再次感谢KevinB告诉我这可能是问题所在。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句