我正在使用html线路断路过滤器将 n
替换为 <br>
angular
.module('App')
.filter('addHtmlLineBreaks', addHtmlLineBreaks);
function addHtmlLineBreaks () {
return function (text) {
var output = text.replace(/n/g, '<br/>');
return output;
};
}
然后我使用ng-bind-html
<p ng-bind-html="coach.Description | addHtmlLineBreaks"></p>
一切看起来都很好,但是我在打开新标签的地方有一个链接
<a ui-sref="Detail" target="_blank">
现在,过滤器仍然可以使用,但会出现错误
angular.js:13920 TypeError: Cannot read property 'replace' of undefined
at mtc.min.js:1
at fn (eval at compile (angular.js:14817), <anonymous>:4:311)
at regularInterceptedExpression (angular.js:16043)
at expressionInputWatch (angular.js:15948)
at Scope.$digest (angular.js:17515)
at Scope.$apply (angular.js:17790)
at done (angular.js:11831)
at completeRequest (angular.js:12033)
at XMLHttpRequest.requestLoaded (angular.js:11966)
任何想法会发生什么以及如何解决?
确保定义文本:
angular.isDefined(text) ? text.replace(/n/g, '<br/>') : ''