【问题标题】:how do you deal with extra records that was created, but not used?您如何处理已创建但未使用的额外记录?
【发布时间】:2015-07-01 02:11:53
【问题描述】:

当用户进入路由时,在模型钩子中创建记录是一种常见的模式。

有时这些记录仍未使用,它们会在某些条件下弹出,即在 peekAll 查询中,尽管这是不需要的。怎么处理?

【问题讨论】:

  • 有几种方法,你可以只使用 POJO 代替模型钩子中的记录,如果不使用,可以在离开路由时删除记录。
  • 这不是 Ember Data 自己处理的吗?
  • Ember Data 如何知道您决定不使用记录?重要的是要意识到 Ember 和 ED 是两种不同的产品。 ED 不是 Ember 代码库的一部分。

标签: ember.js ember-data


【解决方案1】:

如果创建是路由的主要职责,您可以在deactivate 路由事件上销毁模型,例如:

//route
model: function() {
    return this.store.createRecord('modelName');
},

cleanModel: function() {
    var model = this.modelFor( this.routeName );
    if (model.get('isNew')) {
        model.destroyRecord();
    }
}.on('deactivate')

Deactivate 事件在路由器完全退出该路由时触发。路由模型改变时不执行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-30
    • 1970-01-01
    • 1970-01-01
    • 2017-04-20
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多