[英]Knockout Observable not updating when given a new value
這似乎是使用基因剔除的最基本的部分,但我不確定為什么它不起作用,但是由於某種原因,我的5個基因剔除可觀察值中有2個都保持了新的值。
在模型的設置中:
self.CProviderIdentifier = ko.observable();
self.ReferringProviderIdentifier = ko.observable();
self.BillableCareProviderIdentifier = ko.observable();
self.ServiceLocationIdentifier = ko.observable();
self.PracticeLocationIdentifier = ko.observable();
在一個AJAX調用中,該調用返回JSON對象內部的許多項目,我提取了相關的信息,並將其放入正確的可觀察對象中:
visitModel.CProviderIdentifier(data.CareProviderIdentifier);
visitModel.ReferringProviderIdentifier((data.ReferringProviderIdentifier == null ||
data.ReferringProviderIdentifier == "undefined") ? 0 : data.ReferringProviderIdentifier);
visitModel.BillableCareProviderIdentifier(data.BillableCareProviderIdentifier);
visitModel.PracticeLocationIdentifier(data.PracticeLocationIdentifier);
visitModel.ServiceLocationIdentifier(data.ServiceLocationIdentifier);
現在,如果它們都不起作用,那么(某種意義上)就可以了,但是只有CProviderIdentifier和ReferringProviderIdentifier沒有數據。 在設置屬性之前,我已經在斷點處檢查了數據,數據中的值為1003和0,但是上面的代碼塊未定義兩個可觀察值。
我正在為此工作: https : //jsfiddle.net/bz3mq6z9/
分配是在loadData函數中進行的。 在其中,Javascript不知道什么是visitModel。 該變量不存在,在setter中沒有任何用途。
使用self而不是visitModel。 這樣敲除就知道他正在為視圖模型分配值
問候
您的代碼中有一些錯誤:
應該使用以下方式將viewmode與DOM綁定:
ko.applyBindings(visitModel);
ko.observable是一個函數,因此您應該在合並字符串之前使用調用它。
<span data-bind="text: CProviderIdentifier() + 'cp'"></span>
在LoadData
函數中使用visitModel
不是一個好主意,您可以僅使用self
保留引用。
觀看此演示: http : //jsfiddle.net/bz3mq6z9/6/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.