gpt4 book ai didi

javascript - Backbone 关联与 Backbone 关系

转载 作者:数据小太阳 更新时间:2023-10-29 05:29:48 25 4
gpt4 key购买 nike

我一直在寻找有关我们如何在 Backbone 中建立关系的信息,并遇到了以下两个不错的插件:

两者似乎都存在了两年多,而且似乎很稳定。但是,Backbone-relational 在以下方面优于 Backbone-associations:

  • 提供数据库中几乎所有的关系,例如一对一、一对多、多对一
  • 乍一看不错的文档(类似于 Backbone.js)

因为我没有时间广泛地研究这两个插件,所以我想从有经验的人那里了解以下事情:

  • 是否都支持 AMD(如 Requirejs)?
  • 将插件与后端服务器(如 Ruby on Rails)结合使用是否容易?
  • 实现多态关系有多容易?

最佳答案

最大的区别是 Backbone-relational 禁止创建具有相同 ID 的同一模型的多个实例。考虑:

let Person = Backbone.RelationalModel.extend({
relations: [
type: Backbone.HasMany,
key: 'likes_movies',
relatedModel: 'Movie'
]
});

let peter = new Person({
likes_movies: [{id: 1, title: 'Fargo'}, {id: 2, title: 'Adams Family'}]
);

let john = new Person({
likes_movies: [{id: 1, title: 'Fargo'}, {id: 2, title: 'Adams Family'}]
);

// Change title of one of Peter's movies
peter.get('likes_movies').get(1).set('title', 'Fargo 2 (Sequel)');

// John's corresponding movie will have changed its name
console.log(john.get('likes_movies').get(1)); // Fargo 2 (Sequel)

如果为 Backbone-associations 重写,John 的电影名称不会改变。这可以被视为一个特点或缺点,具体取决于您如何看待它。

除此之外,这两个库非常相似,除了 Backbone-associations 的开发似乎在将近一年前就停止了。

关于javascript - Backbone 关联与 Backbone 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25257010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com