javascript - Backbone 关联与 Backbone 关系

标签 javascript jquery backbone.js backbone-relational backbone-associations

我一直在寻找有关我们如何在 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/

相关文章:

javascript - 定期监听backbone.js中的变化

javascript - Highcharts - 将饼图添加到折线图

jquery - CSS 数据过渡到 anchor

javascript - 在 Backbone 中添加了多个模态

java - 使用 jQuery 访问基于 Jersey 的 RESTful 服务

jQuery 切换 CSS?

javascript - jQuery .text() 返回的字符串的行为与字符串不同

javascript - 是否可以通过pnacl加速webgl矩阵乘法?

javascript - 如果 "wallSize"在 localStorage 中,则将结果存储在 BathroomLength 变量中。否则,不要改变浴室长度

Javascript 将 bool 值与 True 进行比较