ng-bind-html中的过滤器如果打开新选项卡,会出现错误



我正在使用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/>') : ''

最新更新