簡體   English   中英

給定新值時,可觀察到的淘汰賽未更新

[英]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。 這樣敲除就知道他正在為視圖模型分配值

問候

您的代碼中有一些錯誤:

  1. 應該使用以下方式將viewmode與DOM綁定:

    ko.applyBindings(visitModel);

  2. ko.observable是一個函數,因此您應該在合並字符串之前使用調用它。

    <span data-bind="text: CProviderIdentifier() + 'cp'"></span>

  3. LoadData函數中使用visitModel不是一個好主意,您可以僅使用self保留引用。

觀看此演示: http : //jsfiddle.net/bz3mq6z9/6/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM