【发布时间】:2015-07-03 16:29:13
【问题描述】:
这似乎是使用淘汰赛最基本的部分,我不确定为什么它不起作用,但出于某种原因,我的 5 个淘汰赛 observables 中有 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 和 ReferringProviderIdentifier 没有数据。我在设置属性之前检查了断点中的数据,数据中的值是 1003 和 0,但是上面的代码块是未定义的两个 observables。
我正在努力让小提琴为此工作:https://jsfiddle.net/bz3mq6z9/
【问题讨论】:
-
您确定您的
data对象中没有错字吗?你可以试试:var temp = data.CareProviderIdentifier; visitModel.CProviderIdentifier(temp);并在调试器中观察temp吗? -
这就是我发现 CareProvider 的数据是 1003,而我的测试项目的 ReferringProvider 数据是 0。
-
如果你输入一个静态值会发生什么,比如:
visitModel.CProviderIdentifier(12345);? -
由于某种原因,它仍然读作未定义。我只是在设置原始问题中的值之前尝试了这两种方法,或者像您在评论中所做的那样。之后两次都未定义。
-
创建一个MCVE
标签: javascript ajax knockout.js