这似乎是使用淘汰赛最基本的部分,我不确定它为什么不起作用,但出于某种原因,我的5个淘汰赛观察中有2个正在坚持他们的新价值。
在模型的设置中:
self.CProviderIdentifier = ko.observable();
self.ReferringProviderIdentifier = ko.observable();
self.BillableCareProviderIdentifier = ko.observable();
self.ServiceLocationIdentifier = ko.observable();
self.PracticeLocationIdentifier = ko.observable();
在一个AJAX调用内部,它返回一个JSON对象内的一些项目,我提取相关的信息片段,并将它们放入正确的observable中:
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和ReferProviderIdentifier没有数据。我在设置属性之前就在断点处检查了数据,并且数据中的值是1003和0,但是两个可观察的未定义是上面的代码块。
我正在努力为此工作:https://jsfiddle.net/bz3mq6z9/
答案 0 :(得分:-1)
赋值在loadData函数中完成。在它里面,Javascript不知道访问模型是什么。该变量不存在,并且在setter中没有任何用途。
使用self而不是visitModel。那样淘汰赛知道他正在为视图模型分配值
问候
答案 1 :(得分:-1)
您的代码中存在一些错误:
应使用以下命令将viewmode与DOM绑定:
ko.applyBindings(visitModel);
ko.observable是一个函数,所以你应该在结合字符串之前调用它。
<span data-bind="text: CProviderIdentifier() + 'cp'"></span>
在visitModel
函数中使用LoadData
并不是一个好主意,您可以使用self
来保留引用。