我是相對較新的angularjs。我試圖編寫一個過濾器來獲取文本塊,並在html標記中包含某些單詞,即鏈接標記。想要這樣做的最終原因是基於用戶輸入(例如,可以通過輸入表單字段輸入搜索詞或「鍵」)來對某些單詞啓用ui-bootstrap工具提示。Angularjs過濾器刪除自定義屬性,如「工具提示」
這是我的過濾器(基於角UI「亮點」:https://github.com/angular-ui/ui-utils/blob/master/modules/highlight/highlight.js) -
.filter('annotate', function ($sce) {
return function (text, search) {
text = text.toString();
search = search.toString();
return text.replace(new RegExp(search,'gi'), '<a href="#" class="mycoolstyle" tooltip-placement="top" tooltip="test">$&</a>');
};
它的工作原理,在輸出,只要將href和類露面。然而,「tooltip-placement」和「tooltip」屬性被濾除。我會認爲這是一個HTML過濾問題,除了它讓href和類通過。
輸出的HTML看起來像:
<p ng-bind-html="contentStr | annotate:key" class="ng-binding">Hello World check out my <a href="#" class="mycoolstyle">foo</a> bar app</p>
的jsfiddle:http://jsfiddle.net/petersg5/76WZf/
另外請注意,我使用1.2.1所以沒有NG綁定,HTML不安全的(因此$ SCE)。
任何想法?我有點難過。
另外,也許我正在談論這一切都是錯誤的?
你安裝UI的自舉? [鏈接](http://angular-ui.github.io/bootstrap/) – R3tep
@ R3tep - 不,但會導致過濾器忽略自定義屬性?我的問題具體是關於只是將任意'屬性'到鏈接元素中。 – PeterG