2013-03-02 117 views
7

我正在使用Angular進行Chrome擴展,我試圖使用ng-repeat來創建鏈接列表。在Chrome擴展中填充鏈接列表時ng-href

<ul> 
    <li ng-repeat="item in menu" class="ng-scope"> 
     <a ng-href="#/new" href="unsafe:chrome-extension://ehklbggiaofbhgcghgnmejkpgommihdl/popup.html#/new">Add Link</a> 
    </li> 
    <li ng-repeat="item in menu" class="ng-scope"> 
     <a ng-href="#/bookmarks" href="unsafe:chrome-extension://ehklbggiaofbhgcghgnmejkpgommihdl/popup.html#/bookmarks">My Bookmarks</a> 
    </li> 
</ul> 

如何防止被插入unsafe:chrome-extension東西:除了我有填充鏈接href屬性問題偉大的作品?注意:我在我的應用程序的根目錄下設置了ng-csp

+0

我懷疑它與Angular有什麼關係。在我的擴展中,當我用'link'創建一個鏈接時,我得到了'link'。就我所知,AngularJS並不試圖將絕對路徑的相對鏈接預先加上。當你使用href而不是ng-href時,你的標籤是什麼樣的。鏈接是否按預期打開'#new'頁面? – Stewie 2013-03-03 00:26:10

+0

@stewie我認爲關注的是'unsafe:chrome-extension:// ...'部分,而不是重複屬性。 – 2013-03-03 03:06:42

+0

@BrandonTilley我不確定你爲什麼這麼理解我的評論。我完全意識到「不安全......」的問題。 – Stewie 2013-03-03 03:44:24

回答

12

我現在也面臨同樣的問題。還沒有找到任何解決方案。 請檢查這個鏈接:https://groups.google.com/forum/?fromgroups=#!topic/angular/YiP02I1wkNU

按照此,檢查app.js上http://plnkr.co/edit/prTGFiheFI7GXNoDhoGT?p=preview

這樣的代碼:

var app = angular.module('angularjs-starter', []);

app.config(function($compileProvider){ $compileProvider.urlSanitizationWhitelist(/^\s*(https?|ftp|mailto|file|chrome-extension):/); });

這對我的作品。

+0

適用於我,謝謝你。 – 2013-03-08 20:15:31

+4

我在1.2.1下出錯 - 從'urlSanitizationWhitelist'更改爲'aHrefSanitizationWhitelist'。 – Iladarsda 2013-11-22 11:31:19