2015-11-03 57 views
0

我試圖在JavaScript中使用ng-bind-html與replace()函數。當我不包括更換(全球價值只是正常工作),但現在我有類似的東西代替(/測試/克,「TEST」),我在控制檯中看到這一點:當使用JavaScript替換()與全局值時ng-bind-html中斷

Syntax Error: Token '/' not a primary expression at column 95 

這就是我想要做的,也給我帶來錯誤:

ng-bind-html="(resume.address == null || resume.address == '') ? 'Mailing Address' : resume.address.replace(/;/g, 'TEST')" 

有我做,我俯瞰明顯的錯誤,如果是這樣,什麼是寫這個正確的方法是什麼?

編輯:

我的最終目標是替換字符串,其中包含多個「;」字符,並將這些字符替換爲AngularJS不會清理成字符串文字的break元素。如果有更好的方法來做到這一點,那也是值得歡迎的。

+0

這可能是使用自定義的角度濾波 – o4ohel

+0

@ o4ohel你可能是正確的好地方,但我仍然不完全熟悉如何編寫指令。我有一個基本的想法,但我不知道我會如何做這樣的事情。 –

+0

過濾器更容易編寫指令:https://docs.angularjs.org/guide/filter。基本上,你會寫一個函數,它接受一個字符串並返回另一個字符串。因此,您現在內嵌的邏輯將轉移到過濾器。 ng-bind-html =「resume.address | your_filter」 – o4ohel

回答

1

這並不回答你爲什麼角度拋出錯誤的問題。但它可以幫助你解決它。

創建一個過濾器:

angular.module('yourApp', []).filter('addressFilter', function() { 
    return function(input) { 
    input = input || 'Mailing Address'; 
    return input.replace(/;/g, 'TEST')"; 
    }; 
}) 

HTML:

ng-bind-html="resume.address | addressFilter" 
+0

謝謝,這可以滿足我的需求。我會+1,但我對這個網站很陌生,以至於暫時不允許我這樣做。 –