我要做的就是在链接到外部站点的部分的 html 中包含一个锚标记。如果是这个标准的 html,那么代码就是:
<a href="http://www.google.com" target="_blank">google</a>
就这么简单,我似乎找不到一个可行的解决方案来通过角度拦截路线(或者可能无意中用https://docs.angularjs.org/api/ng/directive/a指令替换我的锚?) .
我已经搜索了 SO 和网络的其他部分,并看到了无数的解决方案来处理:同一域内的链接、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会导致完整的页面重新加载角度:AngularJS - How can I do a redirect with a full page load?)。
我也尝试添加 target=_self" 属性,但这似乎也没有效果。
我是否需要按照此处所述编写自定义指令?
有条件地将 target="_blank" 添加到与 Angular JS 的链接
对于这样一个简单的动作来说,这一切似乎都太复杂了,我觉得我在我的 n00bishness 中遗漏了一些明显的东西,至少我希望如此,因为这个过程感觉非常繁重,只是为了链接到另一个 url。
提前感谢任何解决方案、建议、参考或方向。