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
Ember.js 余烬数据-“;试图在处于root.deleted.saved状态时处理*record*上的事件'deleteRecord';_Ember.js - Fatal编程技术网

Ember.js 余烬数据-“;试图在处于root.deleted.saved状态时处理*record*上的事件'deleteRecord';

Ember.js 余烬数据-“;试图在处于root.deleted.saved状态时处理*record*上的事件'deleteRecord';,ember.js,Ember.js,我试图在我的应用程序中使用余烬数据来管理追随者/追随者关系。我遇到了一个问题,如果用户在root.deleted.saved状态下点击开关on/off,余烬会抛出“试图处理事件deleteRecordon”。以前有人遇到过这个问题吗 下面是行动代码 actions: { follow: function(model){ var component = this; var store = this.get('targetObject.store');

我试图在我的应用程序中使用余烬数据来管理追随者/追随者关系。我遇到了一个问题,如果用户在root.deleted.saved状态下点击开关on/off,余烬会抛出“试图处理事件
deleteRecord
on”。以前有人遇到过这个问题吗

下面是行动代码

    actions: {
    follow: function(model){
        var component = this;
        var store = this.get('targetObject.store');
        var session = this.get('targetObject.session');
        this.set('isFollowed', true)

        /* Follower Side */
        Ember.RSVP.hash({
            profile: store.find('profile', model),
            follower: session.get('currentUser.profile')
        }).then(function(rsvp){

            var follower = store.createRecord('follower', {
                profile: rsvp.profile,
                follower: rsvp.follower,
                status: 'approved'
            });


            var followed = store.createRecord('followed', {
                profile: rsvp.follower,
                followed: rsvp.profile,
                status: 'approved'
            });

            followed.save().then(function(savedFollowed){
                rsvp.follower.get('followeds').addObject(savedFollowed);                    
            });
            follower.save().then(function(savedFollower){
                rsvp.profile.get('followers').addObject(savedFollower);
            });


        })
    },

    unfollow: function(model){
        var component = this;
        var store = this.get('targetObject.store');
        var session = this.get('targetObject.session');

        this.set('isFollowed', false)

        /* Remove Follower Side */
        component.set('isFollowed', false)
        Ember.RSVP.hash({
            profile: store.find('profile', model),
            follower: session.get('currentUser.profile')
        }).then(function(rsvp){

            /* Delete Follower Side */

            var follower_id = rsvp.follower.get('id');
            rsvp.profile.get('followers').forEach(function(item){
                if(follower_id == item.get('followLink')){                        
                    item.destroyRecord();
                }
            })

            var profile_id = rsvp.profile.get('id');

            rsvp.follower.get('followeds').forEach(function(item){
                if(profile_id == item.get('followLink')){                        
                    item.destroyRecord();
                }
            })
        })
    }  
}
更新

我解决了这个问题-谢谢GJK的回复。对于那些遇到这个问题的人——因为我正在使用“addObject”手动将记录添加到父模型“hasMany”关系中——当我删除记录时,我还需要将其从该关系中删除,以便它不存在于父模型“hasMany”中,这再次出现在删除循环中。长话短说解决方案是添加“removeObject(item)”,即


root.deleted.saved
表示您的模型已被删除,并且更改已保留到服务器。我的猜测是,
追随者
跟随者
是不一定是不相交的用户集。

问题是当用户重新跟随该人时,即重新创建该记录,然后再次取消跟踪-即销毁新创建的记录-先前删除的记录被拉入删除循环并抛出错误。请参阅上面的更新以获得更清晰的解决方案-通过GJK输入解决了问题。感谢更新。更新真的很有帮助!谢谢
item.destroyRecord(); 
rsvp.follower.get('followeds').removeObject(item);

item.destroyRecord();
rsvp.profile.get('followeds').removeObject(item)