2015-11-03 5 views
0

Я пытаюсь использовать ng-bind-html в руке с функцией replace() JavaScript. Это прекрасно работает, когда я не включаю в себя глобальное значение в замене(), но в тот момент я включаю что-то вроде замены (/ испытания/г, «TEST»), я получаю это в консоли:ng-bind-html ломается при использовании Javascript replace() с глобальным значением

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')" 

ли я сделал очевидную ошибку, что я с видом, и если да, то это правильный способ, чтобы написать это?

Edit:

Моя конечная цель заменить строку, которая содержит несколько ";" символов, и эти символы заменяются элементами break, которые AngularJS не будет дезинфицировать в строковый литерал. Если есть лучший способ сделать это, этот ответ также приветствуется.

+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, но я так новичок в этом сайте, что на данный момент это не позволяет. –