【问题标题】:Binding model with same id not working with backgrid in Backbone.js具有相同 id 的绑定模型不适用于 Backbone.js 中的 backgrid
【发布时间】:2017-06-14 19:32:07
【问题描述】:

我将一个用户模型类绑定到背景网格。用户模型包含 id、name、domain。我们的目标是显示不同域对应的用户。因此,同一用户可以存在于多个域中。事实上,我们会有相同 id、name 但不同域的记录。

因此在绑定时只显示第一条记录。如何显示其他记录?请注意,为了保持唯一性,我可以添加一个 recordId 列。但我无法对现有的 id 列进行任何更改。我注意到如果我的 id 包含唯一值,问题就会得到解决。但我无法对 Id 列进行任何更改。请帮忙。

迪维亚

【问题讨论】:

标签: javascript backbone.js backgrid


【解决方案1】:

嗯,这有点数据库理论,但这就像跨表建立一对多关系。用户 id 确实出现了多次,但实际上这里应该唯一的是一对 (user-id, domain-id)。

因此,您可以将您的用户集合映射到比方说 UsersWithDomains 集合,其中每条记录都有一个唯一的 id,并且具有 user_id 和 domain_id 作为属性。

为了映射您的收藏,我建议使用 underscore methods 返回一个数组NOT,因此您需要记住这一点,不要忘记再次将它们设为收藏。

【讨论】:

    【解决方案2】:

    这取决于您如何实现 UI,但您可以创建一个新属性,例如“data-id”,并为其赋予一个由 id+domain 组合而成的唯一值。然后使用 data-id 进行所有操作,就像对 id 一样。 例如:$([data-id='id+domain']) 而不是 $('#id')

    【讨论】:

    • 我使用 modelId 属性绑定到一个唯一的模型属性。我需要在数据库中添加一个产生唯一值的字段。它映射到模型类属性。谢谢你的回答。
    猜你喜欢
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    • 1970-01-01
    • 2021-10-12
    • 1970-01-01
    • 2016-06-23
    • 1970-01-01
    相关资源
    最近更新 更多