Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.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
Ember.js EmberJs,changedAttributes()未显示哈希属性的嵌套键中的更改_Ember.js_Ember Data - Fatal编程技术网

Ember.js EmberJs,changedAttributes()未显示哈希属性的嵌套键中的更改

Ember.js EmberJs,changedAttributes()未显示哈希属性的嵌套键中的更改,ember.js,ember-data,Ember.js,Ember Data,对象是DS。模型: $E.toString() > "<reports-dashboard-client-app@model:report::ember596:914fc1b0-b14d-0133-bce2-68a86d03d830>" 现在的情况是这样的: $E.get('filters') > Object {__ember_meta__: Meta} > __ember_meta__: Meta > age_groups: (...) >

对象是DS。模型:

$E.toString()
> "<reports-dashboard-client-app@model:report::ember596:914fc1b0-b14d-0133-bce2-68a86d03d830>"
现在的情况是这样的:

$E.get('filters')
> Object {__ember_meta__: Meta}
>   __ember_meta__: Meta
>   age_groups: (...)
>   get age_groups: GETTER_FUNCTION()
>   set age_groups: SETTER_FUNCTION(value)
>   genders: (...)
>   get genders: GETTER_FUNCTION()
>   set genders: SETTER_FUNCTION(value)
>   __proto__: Object
模型中没有任何变化:

$E.changedAttributes()
> ember$data$lib$system$empty$object$$EmptyObject {}
$E.get('filters.age_groups')
> ["21-30", "31-40"]
$E.set('filters.age_groups', ["21-30"])
> ["21-30"]
$E.changedAttributes()
> ember$data$lib$system$empty$object$$EmptyObject {}
$E.set('filters', {})
> Object {}
$E.changedAttributes()
> ember$data$lib$system$empty$object$$EmptyObject {filters: Array[2]}
我修改了其中一个哈希键,但在模型中仍然没有更改:

$E.changedAttributes()
> ember$data$lib$system$empty$object$$EmptyObject {}
$E.get('filters.age_groups')
> ["21-30", "31-40"]
$E.set('filters.age_groups', ["21-30"])
> ["21-30"]
$E.changedAttributes()
> ember$data$lib$system$empty$object$$EmptyObject {}
$E.set('filters', {})
> Object {}
$E.changedAttributes()
> ember$data$lib$system$empty$object$$EmptyObject {filters: Array[2]}
只有我自己更改哈希,我才能在模型中获得更改:

$E.changedAttributes()
> ember$data$lib$system$empty$object$$EmptyObject {}
$E.get('filters.age_groups')
> ["21-30", "31-40"]
$E.set('filters.age_groups', ["21-30"])
> ["21-30"]
$E.changedAttributes()
> ember$data$lib$system$empty$object$$EmptyObject {}
$E.set('filters', {})
> Object {}
$E.changedAttributes()
> ember$data$lib$system$empty$object$$EmptyObject {filters: Array[2]}
奇怪的是,我可以观察属性
filters.age\u groups
,当该键发生变化时,观察者被正确触发


如何检查DS.Model属性(散列)的嵌套键是否有任何更改?

我最近遇到了相同的问题,我使用解决了这个问题

您仍然需要为每个关系创建模型/片段,但是示例非常容易理解

如果你需要帮助,请留下评论

更新

还有另一种解决方法可供使用


参考资料:

我最近遇到了同样的问题,我通过使用解决了这个问题

您仍然需要为每个关系创建模型/片段,但是示例非常容易理解

如果你需要帮助,请留下评论

更新

还有另一种解决方法可供使用


引用:

余烬无法观察嵌套哈希上的任意键。。或者数组。您需要定义显式的观察者(您已经展示了)。。或者利用某种对象验证,例如:
ember验证
addon。。或者
ember cp验证
addon。要进一步详细说明。。。余烬模型能够像它们一样观察到典型属性的变化的原因。。特别是因为您在模型定义中专门定义了关键点,这些关键点提供观察这些更改所需的对象映射。。。当您进一步创建嵌套标高时,它将崩溃。。如果没有定义属性,SAN ember无法观察嵌套哈希上的任意键。。或者数组。您需要定义显式的观察者(您已经展示了)。。或者利用某种对象验证,例如:
ember验证
addon。。或者
ember cp验证
addon。要进一步详细说明。。。余烬模型能够像它们一样观察到典型属性的变化的原因。。特别是因为您在模型定义中专门定义了关键点,这些关键点提供观察这些更改所需的对象映射。。。当您进一步创建嵌套标高时,它将崩溃。。没有定义属性