Ember-rollback-relationships 是一款 Ember.js 的插件,它可以帮助开发者轻松回滚 Ember Data relationships 中的修改。本文将详细介绍如何使用这个 npm 包。
安装 Ember-rollback-relationships
你可以通过 npm 在项目根目录下安装 Ember-rollback-relationships。
npm install ember-rollback-relationships
安装完成后,在需要使用的地方引入该插件。
import EmberRollbackRelationships from 'ember-rollback-relationships';
如何使用 Ember-rollback-relationships
通过使用 Ember-rollback-relationships 插件,你可以更方便地回滚 Ember Data 关联属性。我们可以参考下面这个例子。
-- -------------------- ---- ------- -- ----------------------- ------ ---------- ---- -------------------- ------ -------------------------- ---- ------------------------------- ------ ------- --------------------------------------------- - -------- - ----- ----------------- - ----- ----------------- - ------------------------- -------------------------- ---------------------------------------------- -- -- ---
在上面的代码中,我们先获取了当前受到修改的模型 post,并使用 changedAttributes()
方法获取到发生修改的属性列表。接着我们通过 rollbackAttributes()
方法将这些属性全部回滚。
现在我们需要回滚所有关联属性,使用 rollbackRelationships()
方法即可做到这一点。这个方法会接受 get 操作返回的关联属性列表,并自动执行回滚操作。
-- -------------------- ---- ------- -- --------------------- ------ ------ - ----- --------- - ---- -------------------- ------ ------- -------------- ----- --------------- ------- ------------------ ----- ------------------ ---
-- -------------------- ---- ------- -- ------------------ ------ ------ - ----- ------- - ---- -------------------- ------ ------- -------------- ------ --------------- ----- --------------- --------- ------------------- ------- ------------------ ---
在上面的代码中,我们定义了两个关联属性,一个是 comment
,一个是 post
。通过回滚这两个属性,我们可以恢复所有的关联。
Ember-rollback-relationships 的应用场景
拥有回滚能力的库肯定有另外一些应用场景。除了使用回滚关联属性的场景外,还有很多其他可以回滚的插件。如果你正在使用这些插件中的任意一个,你都可以使用 Ember-rollback-relationships 来轻松地回滚修改。
此外,该插件也是一个非常好的学习资源,可以让你更全面地理解 Ember.js 和 Ember Data。因为在这个插件中,我们将使用到 Ember 模型的更新属性和关联属性等等。
结论
通过使用 Ember-rollback-relationships 插件,我们可以很方便地回滚 Ember Data 的关联属性。这个 npm 包在项目开发中可以大大减少错误的发生,提高开发效率。同时,学习使用这个插件也是非常有意义的,可以进一步提升对 Ember.js 和 Ember Data 的理解。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066e1ba563576b7b1ecc14