Ember:编辑未设置的模型对象isdirty

时间:2017-07-05 13:19:03

标签: ember.js ember-data ember-2.0.0

我认为这个主题在stackoverflow之前已经讨论过了,但是没有最新版本的ember数据。至少我发现的任何建议都不适用于我。

我使用最新版本的Ember和Ember数据(versjon 2.13.0)。我使用JsonApiAdapter。

方案

从服务器加载记录后,我想对其某些属性进行一些更改。这些更改不会使记录变脏,并且更改的属性不会显示在record.changedAttributes()中。用户在此之后可能进行的任何更改都会使记录变脏。

搜索解决方案

我试图手动更改isDirty标志,但它没有这样做。我还试图找到在加载记录后设置状态的余烬数据代码中的位置(因为基本上我试图做同样的事情)但我还没找到它的位置。 我也试过record.send('pushedData'),但我没有改变记录状态的任何内容。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:3)

我知道有3种方法可以修改服务器的响应而不会弄脏记录:

  1. 您可以覆盖适配器的handleResponse方法,并在有效负载中进行修改。

  2. 您可以覆盖序列化程序的normalize方法。

  3. 您可以使用Ember。$。ajax方法从服务器加载记录,修改响应,然后将其传递给商店的pushPayload方法。

  4. 如果您需要在每次从服务器加载后修改记录(无论您使用哪种路由/控制器),前两种方法都是好的。适配器和序列化器都可以是特定于模型的。如果您只需要在一个地方(控制器或路线)进行,或者您需要访问路线/控制器的变量 - 第三种方法是好的。

    我不知道将记录标记为脏/不脏的任何方法。如果在存储记录后修改记录,它就会变脏。