所以我有一個淘汰的模板,它看起來像如下:屬性的一個沒有被擊倒觀察觀察到
<tbody data-bind='foreach: PrizeFulfilmentStatuses'>
<tr >
<td><input data-bind='value: Description' /></td>
<td><input data-bind='value: Order' /></td>
<td><input type="checkbox" data-bind="checked: Editable"/></td>
<td> <div data-bind = "attr:{color:ColorHex },style:{backgroundcolor: ColorHex}, value: ColorHex" class="colorpickerHolder" style="height:30px; border: transparent; width: 30px;"></div> </td>
</tr>
</tbody>
現在,你可以看到,在過去的TD很多的屬性是被分配了ColorHex。現在,這是我試圖弄清楚什麼的結果。
可以看出,所有其他可觀察值(如Editable和description)都是雙向綁定,因此如果我在UI上更改任何值,那麼observable也會發生更改,並且在將數據發送回服務器時會反射回來。 ColorHex不是。發佈到服務器的值是最初來自服務器的原始值。沒有變化反映在這裏。
以下是更改綁定到ColorHex的屬性的代碼。這是一個ColorPicker jQuery插件:
self.ApplyColorPicker = function() {
var $target = $(this);
$(this).css("background-color", $(this).attr('color'));
$(this).ColorPicker({
color: $(this).attr('color'),
onShow: function (colpkr) {
$(colpkr).fadeIn(500);
return false;
},
onHide: function (colpkr) {
$(colpkr).fadeOut(500);
return false;
},
onChange: function (hsb, hex, rgb) {
$target.css('backgroundColor', '#' + hex);
$target.attr('value', '#' + hex);
}
});
};
你可以看到這兩條線:
$target.css('backgroundColor', '#' + hex);
$target.attr('value', '#' + hex);
那些被執行時,我可以在正在既爲「背景色」變值螢火蟲看和價值。但是,當涉及發佈價值或張貼舊值不是更新值。
任何建議爲什麼?
發表一個JSFiddle請:) – Charlie