【发布时间】:2014-07-27 23:19:06
【问题描述】:
John Papa 的single page app jumpstart tutorial 向其实体添加了一个名为“isPartial”的属性,以确定整个实体是否已被轻风加载到缓存中。当我使用 Breeze.WebApi 1.1.3 版的教程运行它时,一切都运行良好。但是,我现在使用 VS 2013(版本 1.1)的 HotTowel Visual Studio 模板运行本教程,我发现保存实体时出现问题,其中微风(版本 1.4.1)出现“未捕获的类型错误:布尔不是函数”微风.debug.js 第 15124 行。
有问题的行正在尝试访问实体上的“isPartial”属性:
proto.getProperty = function(propertyName) {
return this[propertyName]();
};
早期版本和现在的区别在于,当在构造函数中附加“isPartial”属性时,像这样:
metadataStore.registerEntityTypeCtor(
'Session', function () { this.isPartial = false; }, sessionInitializer);
...该属性是“ko.dependentObservable”。在较新的版本中,它是一个简单的属性。我的猜测是这就是导致微风问题的原因。实际上,似乎在第一次加载实体时,“isPartial”属性也是一个dependentObservable(并且保存可以正常工作)。但是,在此之后的某个时间,它变成了一个简单的属性。
这是一个有效的之前值的 chrome 调试截图。
这是一个 chrome 调试镜头,它不起作用。
感谢您提供任何线索!
【问题讨论】:
-
尝试将微风.js 升级到版本 >= 1.4.4。在the doc 中,它说版本 1.4.4 解决了 Knockout 包装错误
标签: knockout.js breeze hottowel