Идея взята из hereзаменить шаблон с URL
У меня есть следующий код:
myApp.filter('parseUrlFilter', function() {
var urlPattern = /^E\d{5}-\d{2}$/;
return function (text, target) {
return text.replace(urlPattern, '<a target="' + target + '" href="http://somepage.com?number=$&">$&</a>') + " | ";
};
});
Я все еще пытаюсь понять, как именно работает этот код, но он не преобразует текст на URL.
Как E12345-01
не стал somepage.com?number=E12345-01
Я думаю, что я что-то о том, как регулярное выражение работает здесь отсутствует. Любая помощь будет оценена.
Edit: добавлена plnkr с несколько рабочим ответом machinehead115
Это именно то, что я искал. Два вопроса: 1) как работает sce? Я просто не мог понять, зачем нужен $ sce здесь. 2) Это не работает в моем коде прямо сейчас. Дает ошибку 'parseUrlFilterFilterProvider'. Я поддерживаю app.js, где я пишу общие службы/директивы и один controller.js. I D.I.это было в моем контроллере, но это дало еще одну подобную ошибку. Есть идеи, как я с этим справляюсь? –
Сделано образец [plnk] (http://plnkr.co/edit/uhq2d2LQQ3LAqX2fCQrl?p=preview) –
Здесь я обновил [plnk] (http://plnkr.co/edit/GuKyCrnERzgMUX2vqGJ8?p=preview) для тебя. Вам не нужно обертывать фильтр в 'document.ready()'. Взгляните на ссылку $ sce в моем ответе выше, но основная информация - . _SCE помогает в написании кода таким образом, что (а) является безопасным по умолчанию и (б) выполняет аудит для уязвимостей безопасности, таких как XSS, clickjacking, и т. д. намного проще ._ – machinehead115