我有一张复杂的图表。在图表中有 a)具有数组和类型的类型 b)包含数组的类型数组。
我使用Breezejs加载图表并将其传递给knockoutjs(2.2.1)。
似乎我可以在a)类型的数组上做一个foreach,但是不能预测b)类型中包含的数组。换句话说,b)类型本身是循环的,并且是包含的数组的内部循环。 b)类型中的简单元素显示在knockout html输出中,但不显示在数组中。
例如:主图是医生。医生只有一个ContactInfo(类型'来自上面)类型,其中包含First / Last名称等.InsertInfo中包含地址,电话号码和电子邮件的数组。这些都使用data-bind =" foreach:ContactInfo()。地址()"
医生图中还包含医生可以归属的一系列会员资格(上面的类型' b')。 phys.Memberships []。组织包含组织的名称等。它还有一系列包含金额的费用类型(phys.Memberships []。费用[])。我可以得到组织名称但不是费用。安装。
如果我从服务器返回的json字面值并将其粘贴到变量中,消除了Breezejs对数据执行的任何魔法,使其成为ko.observables我能够访问b)类型及其内部数组,但如果我将数据从breeze调用的success方法传递到viewModel中则不会。
我粘贴了json图表,但它已超过500行。
我只是想知道这是否是breezejs的已知限制,还是我做错了什么。
这里是viewmodel:
var PhysiciansModel = function (physicians) {
var self = this;
self.showPhysList = ko.observable(false),
self.physicians = ko.observableArray(physicians);
self.selectedPhys = ko.observable(),
self.selectedPhysIndex = ko.observable(),
self.selectedPhysGraph = ko.observable(),
self.save = function () {
saveChanges();
};
self.getPhysByInitial = function (item, event) {
getPhysList(event.target.textContent);
self.showPhysList(true);
};
self.clickOnPhys = function (phys, event) {
if (self.selectedPhys() == null || (phys.Id() !== self.selectedPhys().Id())) {
self.selectedPhys(phys);
self.selectedPhysIndex(event.target.parentElement.parentElement.id);
getPhysGraph(self.selectedPhys().Id());
self.showPhysList(false);
}
};
};
由于