在Angular 4中显示特殊符号

时间:2017-07-25 23:36:38

标签: angular angular2-template

我在后台的文本框中使用ngModel获取了一个值。这与可搜索的下拉列表相关联(我使用<p>标记填充,我使用的是innerHtml)。

如果我在文本框中显示注册商标符号,我该怎么办?有任何想法吗?或角度指令?

这些值将作为HTML Byte字符保存在DB中,与我同步的其他服务(例如,注册商标为&#174;

<div class="Top-selection">
                    <input type="text" class="" placeholder="Type here to select a brand" (blur)="checkProperData()"
                           id="brand-id" #BRAND_ID="ngModel" [(ngModel)]="cmpgnCtgry['BRAND_ID']"
                           name="BRAND_ID" (click)="showBrands(row_no)" (keyup)=filter(row_no)/>

                    <div class="filterbox width300px" *ngIf="disableShow[row_no]">
                        <div *ngFor="let brand of brandList">
                            <p [innerHTML]="brand.brandName" (click)="selectCatalogId(brand.brandName, brand.brandUniqueId, brand.brandId, row_no)">
                                {{brand.brandName}}</p>
                        </div>
                    </div>
                </div>

我说的是在这里读取BRAND_ID的方框

我也尝试过以下操作,

var p = document.createElement('div');
                        p.textContent = this.campaign['CMPGN_DTL_TX'].CMPGN_CTGRY[i].BRAND_ID;
                        this.campaign['CMPGN_DTL_TX'].CMPGN_CTGRY[i].BRAND_ID = p.innerHTML;
                        console.log(p.innerHTML);

我真的不明白为什么这不起作用。我在我的.ts组件文件中实现了这个。这对记录是否有帮助? (它也没有在HTML中更新。)

此外,我真的很惊讶没有将其转换为注册商标的标准方式 - 我们必须使用正则表达式并替换&lt;或者&amp;符号。

1 个答案:

答案 0 :(得分:0)

普通[(ngModel)]应正确绑定任何Unicode符号

<强>模板

<div>
    <input [(ngModel)]="brand" />
</div>

<强>组件

brand = "Google™©®"

<强>截图

enter image description here

有关如何在保存到数据库/从数据库读取数据时对HTML实体进行编码和解码的信息,请参阅以下问题:

  1. Encoding
  2. Decoding
  3. Plunker example