问题标签 [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.
jquery - 主干.js 从模型中的嵌套数组填充集合
这是我正在尝试做的事情:我首先加载一个活动站点用户列表,每个用户都与一个电影列表相关联。当我点击一个用户时,我希望他的电影列表出现在下一个菜单上。但是,我没有在初始 JSON 请求中为每个用户加载完整的电影列表,而是尝试使用与骨干关系打包的 model.fetchRelated("key") 选项进行一些延迟加载。
在我看来,我有一个事件监听器:
在我的模型中,我有一个选择功能:
问题是 this.fetchRelated("movies") 是一个异步事件,所以当调用 'add' 时,实际上并没有加载电影。所以我想知道我的选择是什么。我的一个想法是以某种方式将其包装到 jQuery 的延迟对象中......基本上,使用回调。不过,我不确定如何执行此操作,并且我不确定使用回调形式是否真的是很好的 Backbone 设计。
有谁知道我如何使用回调或某些(首选)系统来实现这一点?谢谢!
编辑:
我已经设法使用延迟来获得它,但我仍然想知道是否有没有延迟的更好的骨干解决方案。
javascript - Backbone.js toJSON() 不包括属性
我真的无法绕过这个。出于某种原因,(我怀疑它与异步请求有关)我的模型属性没有使用 toJSON() 函数正确转换。FWIW,我正在尝试使用 django-relational fetchRelated() 进行延迟加载。
这是我发出 fetchRelated() 请求并创建新视图的地方。
这会调用以下渲染函数:
然后调用 UserMovieListItem 渲染函数:
这是踢球者。第一个console.log (this.model.attributes) 按原样显示所有属性。看起来非常好。但是 (this.model.toJSON()) 只返回在 fetchRelated() 之前提供的 URI 和 id 属性。这到底是怎么回事?如果我将 UserMovieListItem 中的 this.model 与“更改”绑定到渲染,那么它将渲染,但在半秒左右之后......},
我的用户模型定义如下:
backbone.js - 如何从一个获取请求中获取多个模型或集合
我有一个获取请求,其响应如下所示。
正如你所看到的,响应是一个对象,它有一个属性 follower,它是一个对象数组。
我想从这个响应中创建一个模型和一个集合,其中一个具有以下属性:
另一个是模型集合
激活我的目标的适当方式是什么?
我可以使用 Backbone.Relation 吗?
如果是,有一些例子吗?
backbone.js - 主干/骨干关系应用程序中的视图 + 子视图
我通过阅读 stackexchange 学习了很多关于骨干、骨干关系和构建 Web 应用程序的知识 - 所以首先感谢社区。
现在,我一直在试图理解这个当前涉及嵌套模型和子视图的问题,在我看来这是一个非常常见的用例。
我正在尝试通过跟踪每种葡萄酒的“CheckIns”来扩展本教程以了解主干关系、视图/子视图和事件处理。
我已经扩展了服务器端来为 checkIns 返回适当的 JSON 和骨干关系模型,如下所示:
葡萄酒模型是这样的:
我创建了一个 CheckInListView 和 CheckInItemView(与 WineListView 和 WineListItemView 相同)并使用 WineView Render 函数来呈现 CheckIns,如下所示:
我还在 wineview 中创建了一个新函数,该函数创建一个签入并与给定事件相关联:
}
好的 - 如果你还没有 TL/DRed - 从 UI 的角度来看,这一切似乎都可以正常工作 - 即。一切都正确呈现并保存到 Db。
但是我在控制台中注意到,当我推送一个新的 CheckIn(在上面的 console.logs 之间)时,CheckInListView 的 Add 绑定被多次调用以按下 wach 按钮 - 这让我觉得我的视图有问题或者那个我不了解有关事件传播的基本知识。
为什么会这样?这是预期的行为吗?我是否正在接近我正在尝试正确做的事情?
如果不是您的帮助,请感谢您的阅读。
==
以下是绑定到添加(和其他)事件的 CheckinListView 和 CheckInList Item 视图的相关部分。
===============================================
关于事件绑定和关闭视图的注释是调试它的正确提示。
1) 我没有正确关闭和取消绑定嵌套视图,这留下了一些幽灵事件消费者,即使 DOM 中没有任何内容
2)如果我们只想在子视图中做某事,您只需要绑定事件。
例如 - 如果我在子视图中有复选框,我可以在主视图中绑定子视图更改事件并在那里处理事件,因为无论如何主视图都有模型。我不知道这是否是“正确”的方式,但它适用于我需要做的事情。(mm .. 意大利面条代码味道很好)
3) 努力解决这个问题帮助我对 UX 进行了更多思考,并帮助我简化了 UI。
4)我试图通过将所有数据嵌套到 JSON 调用中来“保存”对服务器的调用。如果我要重新执行此操作 - 我根本不会嵌套数据,而是通过将葡萄酒 ID 与 checkIn ID 关联起来在后端处理它,然后有一个单独的集合,一旦选择任务,该集合就会填充该集合- 我认为这不是首选方式,但它似乎是很多人的方式。
仍然欢迎对上述“正确”方式问题的任何想法,或者是否有人可以指出超出“简单主干应用程序”的教程
javascript - 如何处理backbone.js中的关系
我对如何设计与我的模型关系相关的backbone.js 应用程序感到困惑。
如果我有一个事件模型,它有几个关系,比如说一个用户模型可以有很多事件,而事件模型又可以有很多评论和参与。一个用户可以有很多评论,参与可以有一个用户和一个事件。哇,好乱啊!
好的,所以我的想法是在用户加载页面时加载事件列表,当用户单击事件时加载有关该事件的其余信息(评论、参与和用户)。
所以问题是,我是否应该使用某种全局变量来保存所有事件、用户等,当我从服务器获取信息时将其放在那里(并在我从服务器获取某些东西之前检查那里),也许在某些某种本地存储(以及如何使用骨干关系来做到这一点?)。
我的另一个想法是让每个事件都有自己独立的数据,这样做的问题是我可能会在每次点击事件时发送冗余数据。
你推荐什么方法?
谢谢!
backbone.js - 主干集合在重置/获取时与模型分离
我正在开发一个有两个视图的应用程序。
View 1 是一个文档列表,展示了一些重要的细节 View 2 是它本身的文档。可编辑。
该应用程序是多用户的。因此,应用程序会轮询服务器以获取对集合的更新。
问题是,当集合(视图 1)被刷新(.fetch)时,它会从子模型中解除所有事件的绑定。包括在视图 2 中打开的一个。与获取之前一样,文档(模型)中的任何更改都反映在列表(集合)中,获取之后文档(现在是旧模型)现在与列表(集合)无关.
查看backbone.js 源代码后,这是预期的行为。是否有解决此问题的方法?
backbone.js - 骨干关系 fetchRelated 不发送请求
我正在使用带有 Rails 3.2 后端的主干.js 和主干关系 0.5.0。我有一个有很多笔记的卡片模型。
这是我的 JS 模型和集合:
正常提取效果很好,但是当我在控制台中尝试 fetchRelated 时,我得到一个空数组:
奇怪的是,这行得通:
我可以使用该方法并解析响应文本,但感觉真的很脏。
有人知道我在这里缺少什么吗?
先谢谢了,这个真的很折磨我!
斯图
rest - 使用一个查询而不是多个查询使用 Backbone 引导数据
如果我错了,请纠正我,但是一个复杂的查询是否比多个小查询便宜 ->问题?似乎列出的问题有相反的观点。我总是被教导说,最昂贵的操作是打开和关闭与数据库的连接。如果是这种情况,在应用程序启动时引导数据的最有效方法是什么?
为简单起见,假设我的应用程序需要最新帖子、最新类别、登录用户和最新标签的集合。现在我可以在一个查询中获取所有这些数据,或者我可以单独获取这些数据。你会推荐哪一个?如果我使用单个查询,您通常如何在 Backbone 中执行此操作,您将如何通过 Restful API 执行此操作?
非常感谢
泰隆
javascript - 响应 Backbone 关系中的类别模型变化
我与 Backbone Relational 建立了模型关系,其中 anItem
属于Column
. 将项目添加到列中效果很好,但是如何引用项目的现有视图,以便将其从旧列中删除?(因此,项目当前跨列重复。)
请参阅此 JSFiddle - http://jsfiddle.net/geVPp/1(我认为代码需要在ColumnView
removeItem
事件处理程序中实现,但我可能错了)。
(示例实例位于脚本的底部,因为我还没有 UI 控件。)
这是小提琴中的 ColumnView:
javascript - 为什么当我将数据选项添加到主干模型提取时,它不会触发回调
我正在直接在主干中使用模型进行简单的提取。
这完美地工作。
但是我想在请求中发送一个参数,但是当我这样做时,它会停止工作吗?没有错误报告?
任何人都可以帮忙吗?请求看起来像是完美地从服务器返回?