我已经深入了解了一段时间并使用了ko.mapping扩展,并开发了一些非常复杂的嵌套对象。当桑德森最近在new knockout projections library上发布博客时,我对如何重新审视我的一些问题感到高兴。如上所述,projection库使用Knockout 3.0的arrayChange功能来创建与数组更稳固的关系,减少了我们订阅observableArrays上的更改时的额外开销。
我现在要做的就是使用这个新库并改进我的模型。我的一些关系有嵌套的关系,通常是循环的,所以我必须在几个实例上使用'deferEvaluation',只是为了让它们初始化,然后它们都会疯狂并开始相互竞争。
我开始使用基本的地图功能,例如
self.Workshifts = self.WorkshiftsData.map(function(ws) {
return new ScheduleWorkshift(ws);
});
以及其他情况下的过滤器
newWSE.Workshifts = self.WorkshiftsData.filter(function(ws) {
return ws.Key == wse.WorkshiftKey;
});
然而,一些更复杂的属性仍然存在一个大问题,需要推迟初始化,直到整个模型被加载......它真的是鸡蛋问题之前的鸡。
我知道这是全新的,这就是为什么我认为我是第一个在这个标签上发帖的原因。我想了解更多关于此的信息以及您可以使用它来利用它的真正力量。
我的问题是,那些有着良好解释诀窍的勇敢的灵魂,是
'我如何使用地图和过滤器的组合链接以及我真正需要这样做的好情况?我的结果对象能够做什么?'
干杯...
ps ...我没有1500+的代表,并希望有人创建并添加标签'knockout-projections'到这个问题并开始...... < / p>