2016-04-13 34 views
1

Knockout için yeniyim, şu anda garip bir sorunla karşılaştım. ViewModel olarakknockout if-else bağlantı düzgün çalışmıyor

<table> 
<thead> 
    something...... 
</thead> 
<tbody> 
<tr> 
Problem comes here... 
<!-- ko ifnot: editing --> 
    <td><span data-bind="text: Value" /></td> 
    <td><button data-bind="click: Edit">Edit</button></td> 
<!-- /ko --> 
<!-- ko if: editing --> 
    <td><input data-bind="value: Value"></td> 
    <td><button data-bind="click: Save">Save</button></td> 
<!-- /ko --> 
</tr> 
</tbody> 
</table> 

: İstediğim ko if-else bind kullanmaktır, aşağıdaki kodu bakın hepsi dışarı çıkarsan ve USTUNDEYSE deyimi içinde

function SettingData(){ 
    var self = this; 
    self.editing = ko.observable(false); 

self.Edit = function() { 
    self.editing(true); 
}; 

self.Save = function() { 
    self.editing(false); 
} 
} 

başlangıç ​​sayfası, içerik (yanlış olmalı). "Düzenle" ye tıkladığınızda, yalnızca if ifadesindeki içerik görünür ve ifnot ifadesindeki içerik ortadan kalkar, bu iyi bir şeydir, ancak "Kaydet" i tıkladığınızda, if ve ifnot deyimindeki tüm bağlantılar görünür.

Kodumun hangi kısmının yanlış olduğunu bilmiyorum, kimse bana yardım edebilir mi? Teşekkürler.

+1

burada çalışır http://jsfiddle.net/GSvnh/5139/ işlev sınırının altında Ekle –

cevap

2

Görüntüleme modelinde Gözlemlenebilir Değer'i eklemelisiniz. SETTINGDATA() istediğiniz gibi

self.Value = ko.observable("");