2014-10-11 37 views
1

我正在使用挖空開發一個頁面。我已經陣列如下結合到HTML修改數據綁定中的值在挖空

數據:

{'options':[{'name':'hi'},{'name':'hello'}]) 

HTML:

<div data-bind="foreach: options"> 
     <div data-bind="text: name, css: name"></diV> 
    </div> 

每個選項具有圖像和我使用的CSS子畫面。和類名像

div.option- <name>

CSS:

div.option-hi{ 
    background-color:black; 
} 
div.option-hello{ 
    background-color:black; 
} 

所以,如果我可以追加

「DIV這隻會工作。選項 - 「

到 數據綁定中的名稱屬性。無論如何,我可以實現這一點,而無需修改陣列並添加一個屬性到填充數組中

回答

1

如果您不打算更改數組值或將它們包裝到視圖模型中,它們將執行額外的邏輯,那麼您可以直接在綁定中寫入表達式。

所以,你可以做css裏面的字符串連接綁定:

<div data-bind="foreach: options"> 
    <div data-bind="text: name, css: 'option-' + name"></div> 
</div> 

演示JSFiddle

+0

太棒了,其他字符串操作呢?如果我的名字變量有一些下劃線,並且我想在數據綁定中刪除它們。有沒有辦法在數據綁定中調用一些js函數? – Sreevisakh 2014-10-11 20:25:02

+2

您幾乎可以在綁定內部編寫任何有效的JavaScript表達式,因此替換也可以工作:http://jsfiddle.net/pgmvvn2n/1/。但是,如果你發現自己將越來越多的邏輯加入到綁定中,那麼現在是時候重新考慮你的設計並且引入一些視圖模型,你在哪裏移動這些類型的邏輯。 – nemesv 2014-10-11 20:27:46