2016-03-31 128 views
1

所以我有一個綁定到一些數據的選擇列表:HTML實體淘汰賽

<select> 
    <option selected="selected">-- Please select your company --</option> 
    <!-- ko foreach: dealerList --> 
     <optgroup data-bind="attr: {label: name}, foreach: dealers"> 
      <option data-bind="text: name, option: $data"></option> 
     </optgroup> 
    <!-- /ko --> 
</select> 

然而,一些數據(這是由一個API提供)包含HTML實體。例如,提供給optgroup標籤的數據。 &amp;呈現爲&amp;

如何正確呈現這些內容?

回答

0

我知道是用the html binding(這就好比text約束力,但它呈現HTML,包括實體,是),但是安全隱患的潔具以及事實的唯一解決方法是最實際htmloption元素內無效。

這裏的證明:

ko.applyBindings({ 
 
    dealerList: [ 
 
    { 
 
     name: 'group 1', 
 
     dealers: [ 
 
     { name: 'Mark &amp; Sons' } 
 
     ] 
 
    } 
 
    ] 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.0/knockout-min.js"></script> 
 
<select> 
 
    <option selected="selected">-- Please select your company --</option> 
 
    <!-- ko foreach: dealerList --> 
 
     <optgroup data-bind="attr: {label: name}, foreach: dealers"> 
 
      <option data-bind="html: name, option: $data"></option> 
 
     </optgroup> 
 
    <!-- /ko --> 
 
</select>

如果你不能信任你需要a custom binding handler與特徵texthtml介於兩者之間,即只呈現實體而不是其他東西的數據。