问题标签 [backbone-relational]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
923 浏览

backbone.js - 如何使用 Backbone Relational 从初始 JSON 自动创建多对多关系?

文档中关于多对多关系的示例假设公司将在创建人之后添加。

但是,如果人员数据来自已经包含公司列表(公司 ID)的服务器怎么办?

是否可以修改示例,以便可以使用以下代码(或类似 smt):

当尝试以与一对多关系相同的方式实现这一目标时,我失败了:

这是你可以玩的小提琴:http: //jsfiddle.net/ymr5Z/

0 投票
2 回答
615 浏览

backbone.js - 集合上的骨干关系函数

我正在做一个有点大的基于主干的网络应用程序,并且我正在使用主干关系。我想知道我是否可以在一对多关系上有一个自定义函数。

IE 如果我有一个国家模型并且它与多个元数据模型(每个都有一个类型属性)相关,并且我想制作一个函数来将相关集合过滤到某种类型。这不是最好的例子(我不想公开提及项目的细节),但这是我制作的一些示例代码(它可能不是 100% 正确,但它让想法得以通过):

有谁知道你能不能做到这一点?如果有另一种好方法可以做到这一点(同时仍将不同类型保留在同一个集合中),我很想知道。

谢谢!

0 投票
1 回答
503 浏览

javascript - 骨干 js 代码异味 - 嵌入子视图的更好方法?

我正在使用骨干关系模型构建一个骨干应用程序(但这对于这个问题应该无关紧要)。

基本上,我有一个编辑按钮,它将显示一个隐藏的 div。在隐藏的 div id 内有一个子视图(称为DetailsView),它呈现表格元素以填充用户列表。我的模型(对于整个应用程序)大致如下所示:

在我的主视图中(由上述模型的集合提供),当用户单击编辑按钮时,会触发:

代码异味来自我必须detailViewContainer明确声明这一事实。

最初,在我的 forEach 循环中,会调用视图中的另一个函数,其中包含声明和渲染DetailsView. 但是,我会失去this.

我的原始代码看起来像这样:

在 中renderDetailsView,我会丢失上下文this并且无法将 附加DetailsView到正确的 DOM 元素(视图将附加到所有tbody.usersDOM 元素,因为this上下文变成了窗口,因为它处于循环中)。

必须明确声明 adetailsViewContainer对我来说似乎很麻烦,我希望能够保持this上下文指向主视图,而不是整个窗口。

模板只是一DetailsView<tr><td></td></tr>元素。有没有更好的方法来嵌入这个视图而不必求助于创建detailViewContainer

(一个可能的选择是DetailView循环遍历从this.model.get('users')所有返回的集合......这是个好主意吗?)

0 投票
2 回答
2481 浏览

javascript - Backbone.js - 访问父“集合”视图中的所有子视图

需要调用.delegateEvents()父“集合”视图中的所有子视图,以便在从页面中删除父视图然后将其重新打开后重新委托事件。

我可以看到两种方法,就正确的做法而言,这两种方法对我来说都不太正确:

  • 每当addOne(在父视图中调用 ) 时,将刚刚创建的子视图保存到列表中。当视图被添加回页面时需要稍后重新委派事件。使用数组向后滚动该列表并调用.delegateEvents()每个子视图项。这种方法的问题是创建一个单独的数组来保存视图中的所有内容,当视图已经有一个 Backbone 认可的方式来影响它的子视图时this.collection.each()
  • 使用视图内的内置View.collection.each()滚动浏览每个子模型。在每个模型上触发一个事件,导致其相应的视图调用.delegateEvents()自身。这种方法的问题在于,纯粹的面向视图的操作正在通过模型进行路由。

这些方法中的任何一种都好还是有更好的方法我应该这样做?

非常感谢!

0 投票
1 回答
152 浏览

backbone.js - 使用相同的主干关系模型来处理数据的预加载和临时加载

我有一棵模型树,我想让它们预先从一个大的 JSON 请求中加载,然后能够一次更改它们,而无需保存整个树或重新加载整个树,也无需制作每个版本的两个版本模型。

我遇到的问题是,如果每个子模型都有一个 keySource,它们就不会预先加载,但是如果没有 keySource,你就不能单独加载或保存。

我在前期加载中的内容是完全连接的整个对象树(没有 id 列表),因为我没有看到解决方法。那是问题吗?或者如果没有两个以某种方式连接的模型版本,我正在尝试做的事情是不可能的?

0 投票
2 回答
2510 浏览

javascript - 用于登录和注销功能的 Backbone.js 架构

我有点不确定如何在 Backbone.js 中为登录/注销控件设置功能。

这就是我的想法,但我不确定这是否可以,或者这个架构是否存在问题:

  • Model是当前用户。如果模型在执行 a 时得到HTTP 404响应fetch(),则“当前用户”应该是匿名用户。如果不是,则Model保存当前用户的信息。
  • View: _
    • 如果当前用户为“匿名”,则显示用户名和密码输入框;和一个“登录”按钮。
    • 如果当前用户是有效用户,则视图显示当前用户的用户名和“注销”按钮。

当按下“登录”和“注销”按钮时,我不确定如何处理模型。是否应该通过模型的功能完成登录和注销fetch(),或者这些操作是否应该触发不同的 POST 请求,其成功结果要么填充Model要么 要求Model执行另一个fetch()

任何输入表示赞赏,非常感谢!

0 投票
2 回答
862 浏览

javascript - 绑定子模型以在骨干网/木偶中查看

我有一个具有 BankAccount 模型的 User 模型,并且我查看了谁的模型属性设置为 User 模型,并且在该视图的模板中我引用了银行帐户的属性:

如果我更新了 bankAccount,则视图不会接受更改:

我尝试在 User 模型的初始化中添加以下内容,但它也不起作用。

有什么建议么?此外,如果有帮助,这两个模型都使用骨干关系。

0 投票
2 回答
1971 浏览

backbone.js - 与 Require.js (AMD) 的骨干关系

我正在开发一个相当大的网络应用程序,我将在其中使用 require.js,因此一旦它准备好用于生产,我就可以编译它,但我想使用骨干关系。我也将使用骨干木偶,但我不确定它将如何包含在模块的定义功能中。

有人对这个有经验么?

0 投票
2 回答
885 浏览

javascript - 骨干为collection.models输出空数组?

有问题,如果我这样做

console.log apples将放出 Apples Collection,并models: Array(10)在对象内列出。

但是,console.log apples.models输出一个空数组。

为什么会这样?

提前致谢。

0 投票
3 回答
751 浏览

javascript - 使用 jasmine 测试骨干关系模型

假设我有两个简单的夹具文件,一个用于用户(1),一个用于消息(2)。

消息的主干模型如下 (3)。

如果我加载“消息夹具”,我还希望获得消息模型中指定的有关用户的相关信息。
使用 jasmine 测试套件在规范视图 (4) 中激活此目标的正确方法是什么?
更多细节请参见 (4) 中的注释。


(1)


(2)


(3)


(4)