2017-07-25 202 views
0

我在文本框中使用ngModel从我的后端获取值。这与一个可搜索的下拉列表(我使用<p>标签和我在哪里使用innerHtml)相关联。在Angular 4中显示特殊符号

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

值越来越保存在DB从另一个服务HTML字节字符,我和同步(对于例如,注册商标为&#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中更新)。

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

+0

请发布代码片段您正在使用或提供[plunker示例](https://plnkr.co/edit/tpl:AvJOMERrnz94ekVua0u5?p=catalogue):) – 0mpurdy

回答

0

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

模板

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

部件

brand = "Google™©®" 

截图

enter image description here

有关如何编码,并保存到解码HTML实体时/从数据库中读取看到这些问题的信息:

  1. Encoding
  2. Decoding

Plunker example

+0

问题是,我将它从数据库中的另一个源保存为html字节字符 - 例如,'®'而不是商标符号 –

+0

这对我不起作用 - 当我尝试与模型同步时,它会将其作为商标符号插入,而不是将其转换回html代码。 –

+0

我想显示商标,但在数据库中我只想保存html代码 –