转换路线时不会删除余烬数据模型

时间:2015-01-22 02:04:33

标签: ember.js ember-data

我离开路线时需要删除模型。我在路线中使用以下内容:

actions : {
    willTransition: function(transition){
        //Cleanup search model
        var model = this.modelFor('route1.index');
        model.deleteRecord();
        //At this point the model.get('isDeleted') = true
    }
}

当我转换到我的新路线route1.route2时,从ember检查器,我仍然可以看到该模型及其isDeleted属性现在为假。

为什么这不起作用?

2 个答案:

答案 0 :(得分:1)

首先,在您进入路线之前,系统也会调用willTransition,因此您必须确保转换的目标与当前路线不同:

if (transition.intent.name !== this.routeName)

然后,你可以使用类似的东西:

var model = this.modelFor(this.routeName);

而不是手动输入路线名称。

您是如何检查模型是否未删除的?也许你创建了一个新的?

答案 1 :(得分:1)

您需要在致电save()

后调用deleteRecord()方法
actions : {
   willTransition: function(transition){
        //Cleanup search model
        var model = this.modelFor('route1.index');
        model.deleteRecord();
        model.save();
    }
}

或者只使用model.destroyRecord();,因为它同时使用