angular 页面中的换行符转换为 <br/>
newline in angular page converted with <br/>
我有以下功能:
setLocalVariableOnAccepted(ogp, hb, responseJson) {
if (responseJson.ofgp === undefined) {
this.ogpStatus = 'orange';
this.ogpStatusMsg = responseJson.ofgp + ', <br/> No change. Previous value is used';
}
即在下面填写留言div:
<div id="default_ogp">
<p>
<b>Default Offline Grace Period [minutes]</b><br>
<input type="text" class="form-control" maxlength=7 id="default_ogp_input" size="60%"
pattern="^[1-9][0-9]*$" (focus)="onFocus($event)" (input)="onChangeInput($event)"
[(ngModel)]="ogpInteger" name="default_ogp_input" #default_ogp_input="ngModel">
</p>
<p id="invalid_pattern_match_ogp" class="inputValidationFailure" [hidden]="!default_ogp_input.hasError('pattern')">Invalid format</p>
<p id="message_response_ogp" class="messageResponseBox" [style.background-color]="ogpStatus" [hidden]="!ogpStatusMsg">{{ogpStatusMsg}}</p>
</div>
但填充后标签显示为:
Message..., <br/> No change. Previous value is used
所以
打印为字符串,转换为文本,实际上通过检查代码我可以看到它映射为以下 ascii 代码:< br/ >
Message, <br/> No change. Previous value is used</p>
如何更改它并引入换行符?
使用实际的换行符:
setLocalVariableOnAccepted(ogp, hb, responseJson) {
if (responseJson.ofgp === undefined) {
this.ogpStatus = 'orange';
this.ogpStatusMsg = responseJson.ofgp + ', \n No change. Previous value is used';
}
并设置您的容器以显示它们 CSS:
.messageResponseBox{
white-space: pre;
}
或者,使用 innerHtml
也应该有效:
<span [innerHtml]="ogpStatusMsg"></span>
您将不得不创建一个管道来清理您的 HTML。
基本上你会在 HTML
中更改这一行
<p id="message_response_ogp" class="messageResponseBox"
[style.background-color]="ogpStatus" [hidden]="!ogpStatusMsg">{{ogpStatusMsg}}</p>
像这样包含管道
<p id="message_response_ogp" class="messageResponseBox"
[style.background-color]="ogpStatus" [hidden]="!ogpStatusMsg"
[innerHTML]="ogpStatusMsg | sanitizeHtml"></p>
我有以下功能:
setLocalVariableOnAccepted(ogp, hb, responseJson) {
if (responseJson.ofgp === undefined) {
this.ogpStatus = 'orange';
this.ogpStatusMsg = responseJson.ofgp + ', <br/> No change. Previous value is used';
}
即在下面填写留言div:
<div id="default_ogp">
<p>
<b>Default Offline Grace Period [minutes]</b><br>
<input type="text" class="form-control" maxlength=7 id="default_ogp_input" size="60%"
pattern="^[1-9][0-9]*$" (focus)="onFocus($event)" (input)="onChangeInput($event)"
[(ngModel)]="ogpInteger" name="default_ogp_input" #default_ogp_input="ngModel">
</p>
<p id="invalid_pattern_match_ogp" class="inputValidationFailure" [hidden]="!default_ogp_input.hasError('pattern')">Invalid format</p>
<p id="message_response_ogp" class="messageResponseBox" [style.background-color]="ogpStatus" [hidden]="!ogpStatusMsg">{{ogpStatusMsg}}</p>
</div>
但填充后标签显示为:
Message..., <br/> No change. Previous value is used
所以
打印为字符串,转换为文本,实际上通过检查代码我可以看到它映射为以下 ascii 代码:< br/ >
Message, <br/> No change. Previous value is used</p>
如何更改它并引入换行符?
使用实际的换行符:
setLocalVariableOnAccepted(ogp, hb, responseJson) {
if (responseJson.ofgp === undefined) {
this.ogpStatus = 'orange';
this.ogpStatusMsg = responseJson.ofgp + ', \n No change. Previous value is used';
}
并设置您的容器以显示它们 CSS:
.messageResponseBox{
white-space: pre;
}
或者,使用 innerHtml
也应该有效:
<span [innerHtml]="ogpStatusMsg"></span>
您将不得不创建一个管道来清理您的 HTML。
基本上你会在 HTML
中更改这一行<p id="message_response_ogp" class="messageResponseBox"
[style.background-color]="ogpStatus" [hidden]="!ogpStatusMsg">{{ogpStatusMsg}}</p>
像这样包含管道
<p id="message_response_ogp" class="messageResponseBox"
[style.background-color]="ogpStatus" [hidden]="!ogpStatusMsg"
[innerHTML]="ogpStatusMsg | sanitizeHtml"></p>