我想要做的就是在链接到外部网站的部分的html中包含锚定标记。是这一标准的HTML,代码将仅仅是:从angularJS部分链接到具有不同域的外部URL部分
<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>
(如下所述:Binding external URL in angularjs template)
,但似乎并没有这样的伎俩(我结束只用href =“{{”在渲染页面中)。
使用这样一个普通的锚链接:
<a href="http://www.google.com">google</a>
也没有这样的伎俩(即使一些网上告知,标准HREF会引起角一个完整的页面重载:AngularJS - How can I do a redirect with a full page load?)。
我也试过将目标= _self”的属性,但是,似乎没有任何效果无论是。
我是否需要写一个自定义的指令,因为这里所描述?
Conditionally add target="_blank" to links with Angular JS
这一切对于这样一个简单的动作似乎太复杂了,我觉得我在我的n00bishness中缺少一些明显的东西,至少我希望如此,因为这个过程只是为了链接到另一个url而感到非常繁重。
预先感谢您提供任何解决方案,建议,参考或方向。
你的第一个片段(香草html锚点)对我来说工作得很好。 –
谢谢你为我验证凯文。我在其他地方发生了一些事情,那就是拦截或阻止我的链接工作。奇怪的是,我可以右键单击链接并在新选项卡中打开它没有问题,但是当我左键单击时,我什么也得不到。就我应该看到的内容而言,这里是否有任何常见的嫌疑人?我在视图上执行了一些自定义代码来执行视差效果,但它仅限于拦截滚动到视图中下一张幻灯片的特定按钮上的代码。点击锚点不会与该代码进行交互。否则,这是一个非常香草的设置。 – taoteg
凯文,我想接受你的评论作为我的答案,因为它确实是除了锚点之外的东西,你为我验证了香草代码的作品。出于某种原因,我似乎无法弄清楚如何在这里做到这一点。哇 - 脑子坏的一天。 – taoteg