Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Knockout.js ComplexType.rejectChanges是否设置了错误的原始值?_Knockout.js_Breeze - Fatal编程技术网

Knockout.js ComplexType.rejectChanges是否设置了错误的原始值?

Knockout.js ComplexType.rejectChanges是否设置了错误的原始值?,knockout.js,breeze,Knockout.js,Breeze,这看起来像虫子,但我不确定。在同一数据上下文/跟踪的更改会话中 创建一个实体(具有复杂类型) 更改所创建实体的复杂类型的字符串属性。“测试” 保存更改(接受所有更改) 从db/远程源重新加载同一实体 对复杂类型的相同字符串属性进行更改。“测试” 呼叫管理器。回复更改()。 -->复杂类型的属性应恢复为#3(“测试”)的状态。相反,它恢复为“” 我检查了breeze代码,发现在处理revertChangesCore方法时,complext类型的原始值实际上显示为“”,而不是“test” 无论出于何

这看起来像虫子,但我不确定。在同一数据上下文/跟踪的更改会话中

  • 创建一个实体(具有复杂类型)
  • 更改所创建实体的复杂类型的字符串属性。“测试”
  • 保存更改(接受所有更改)
  • 从db/远程源重新加载同一实体
  • 对复杂类型的相同字符串属性进行更改。“测试”
  • 呼叫管理器。回复更改()。
    -->复杂类型的属性应恢复为#3(“测试”)的状态。相反,它恢复为“”
  • 我检查了breeze代码,发现在处理revertChangesCore方法时,complext类型的原始值实际上显示为“”,而不是“test”

    无论出于何种原因,我破解此问题的方法是通过在步骤5之前调用以下代码重置complexType的originalValues列表:


    有没有想过是什么导致了原始值的错误?这似乎是在创建新实体时发生的,而不是在从db加载现有实体时发生的。

    我刚刚创建了一个针对Breeze v 1.4.5的测试来复制这个,我没有看到错误。第二次“还原”后,我的complexType属性将还原为“测试”,而不是“”。您正在运行哪个版本的breeze?

    它是breeze.client nuget软件包v1.4.4。重置原始值修复此问题是否意味着我应该在步骤#3后显式调用acceptChanges,或者在重新加载后调用acceptChanges?不,您也不需要这样做,任何保存后都会有效地调用acceptChanges。你能试试Breeze 1.4.5,看看是否能解决这个问题吗?我知道在任何保存后都会调用它。。。希望有一个机会,也许微风中的错误就在那一部分-保存后调用acceptChanges。。。似乎是一个更容易修复的bug。一旦我有时间更新到1.4.5,我将更新此票证。。需要关注哪些突破性的变化?
    myEntity().ComplexType1().complexAspect.originalValues = [];