Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.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
Javascript 将模型保存到新集合,然后使用主干销毁它_Javascript_Backbone.js - Fatal编程技术网

Javascript 将模型保存到新集合,然后使用主干销毁它

Javascript 将模型保存到新集合,然后使用主干销毁它,javascript,backbone.js,Javascript,Backbone.js,不知是否有人能告诉我我的方法是否正确。我有两个系列-电影和观察列表,都使用电影模型。当模型监视列表为true时,可以将电影保存到监视列表中。我只是不确定我是否做对了,但是我希望得到一些反馈 JS onWatchlistAdd: function(model) { model.toggleWatchlist(); this.dataStore.watchlist.add(model); model.save(null, {

不知是否有人能告诉我我的方法是否正确。我有两个系列-电影和观察列表,都使用电影模型。当模型监视列表为true时,可以将电影保存到监视列表中。我只是不确定我是否做对了,但是我希望得到一些反馈

JS

onWatchlistAdd: function(model) {

        model.toggleWatchlist();

        this.dataStore.watchlist.add(model);

        model.save(null, {
            success: function(model, response, options) {
                console.log('Success::', model, response, options);
            },
            error: function(model, response, options) {
                console.log('Error::', model, response, options);
            }
        });
    },
onWatchlistRemove: function(model) {

        model.toggleWatchlist();

        this.dataStore.watchlist.remove(model);

        var clonedFilm = model.clone();

        clonedFilm.destroy(null, {
            success: function(model, response, options) {
                console.log('Success::', model, response, options);
            },
            error: function(model, response, options) {
                console.log('Error::', model, response, options);
            }
        });
    }
因此,我的逻辑是,在添加到watchlist时,我将models watchlist属性设置为true,然后将其添加到watchlist,然后保存模型。在remove时,我将watchlist属性设置为false,从watchlist集合中删除,然后克隆并销毁,以避免完全删除模型。这看起来对吗


Codepen:

model.destroy也将从集合中删除它。我不知道你为什么要创建克隆然后销毁克隆?!如果我使用model.destroy,那么该模型将从监视列表和电影收藏中完全删除?它将从它所附加的收藏中删除。模型有一个集合属性。当我在观察列表中运行模型销毁,然后返回到我的电影集合时,模型也会从那里删除吗?这就是为什么我要克隆人,但这也是为什么我在这里问这个问题,因为它觉得不对。你应该分享一个想法,并解释你试图实现的目标,以及到底是什么问题。我们不知道您是如何创建模型并添加到这些集合中的。我们也不知道在
toggleWatchlist
中发生了什么。理想情况下,您应该能够在一个集合中创建模型,在另一个集合中添加相同的模型,并使用它的
remove
方法将其从以后的集合中删除。销毁将从其实际父级中删除它。您似乎也在做
this.dataStore.watchlist.remove(model)
这可能是它从两个集合中删除的原因。