我想要做的就是在鏈接到外部網站的部分的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