问题标签 [backbone-model]
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.
javascript - 如何取消设置 _id 主干模型属性?
我想从模型实例中获取属性,unset()
使用模型方法发出请求。_id
POST
save()
但我得到了Uncaught TypeError: Object [object Object] has no method 'call' backbone-min.js
因为这条线:
我正在使用idAttribute: "_id"
,所以我尝试了:
但它不会取消设置_id
属性。
javascript - “递归过多”主干错误
我正在为我的应用程序使用 BackboneJS。在我的场景中,我有一个包含booksCollection
所有书籍列表(比如模型)的集合(比如Book
)。我需要根据 获取某本书id
并将其传递给视图。我有以下代码:
在检查book
时,我发现它具有collection
所有模型的属性booksCollection
。所以,当试图保存(设置几个属性后)这个模型时,我得到这个错误“递归太多”。
通过在集合上调用get
方法返回的模型是对象吗?Backbone
readonly
作为快速修复,我正在取消设置collection
属性book
,然后保存模型
book.unset('collection', {静默: true });
这是一个正确的方法吗?
谢谢,安吉
backbone.js - 主干.js 必须定义一个 url 属性
我正在尝试使用 Backbone.localStorage 作为应用程序的后端。
我编写了一个名为 Era 的模型,以及一个相应的 EraView。在 EraView 中按 enter 会导致模型被保存,这就是我得到错误的地方:
这是 EraView 的代码
这是时代模型的代码:
我以为我在使用 localStorage 时不需要 url。
编辑:我忘了提到,虽然这种行为发生在 Era/EraView 本身中,但它也发生在扩展 Era 的 Name 模型中。Name 又属于 Names 集合。我不知道这是否有区别,但我想我添加它。
编辑 2:名称集合如下所示:
编辑 3:我在 jsfiddle 上发布了所有代码:http: //jsfiddle.net/herrturtur/CRv6h/
backbone.js - 如果视图本身通过 Backbone.Model.set() 更新了模型,则不要调用 render()
在我的 Backbone.js 项目中,我有一个模型和几个视图。'change:currentTextTitle'
所有视图都在此模型上注册了回调:
现在用户执行一些操作,这会导致特定视图更改其“当前文本标题”字段。然后,这个特定myModel.set("currentTextField", newTextValue)
的视图调用它又触发'change:currentTextTitle'
调用所有视图的事件(包括 set() 起源的那个)。然后所有视图调用它们的render
回调函数。
问题是该render
方法也在最初调用 set()-Method 的 View 上调用,这是完全没有必要的,因为它已经与currentTextTitle
.
我的视图如何调用 myModel.set() 以通知其他视图的回调,但不触发/调用“源视图”本身?
一种解决方法似乎是将源视图作为方法options
参数的一部分set()
传递(传递给回调trigger()
,然后传递给render()
回调):
然后在render
回调中可以检查是否thisViewSetAttribute != this
. 但是,我认为不是在每个回调中实现检查,而是通过仅调用必要的回调并忽略发起 set() 方法调用的源视图来在模型本身中处理这个更有意义。这可能吗?
javascript - Backbone.js - 模型内的集合 - 对象函数 (a){return new n(a)} 没有方法“有”
我得到一个
fetch()
在我的模型上调用该方法时出错。继承人的代码:
当我第一次检索锻炼集合时,一切正常。但是,当我打电话时getWorkoutDetails
,我得到了错误。通过插入警报和console.logs
锻炼parse()
模型,我发现它确实从服务器获得了正确的响应,但由于某种原因,它给出了这个错误。
有任何想法吗?谢谢。
javascript - 如何知道 Backbone model.fetch() 何时完成?
我像这样绑定我的主干模型的更改事件。
有时我想获取模型的最新版本并强制渲染视图。所以我这样做
不幸的是,model.fetch() 仅在新数据与先前存储在模型中的数据不同时才会触发更改事件。
如何在 fetch 完成时始终触发 this.render 回调,无论它是否触发更改事件?
在此先感谢您的帮助
javascript - 覆盖 Backbonejs 模型获取函数
我正在使用 Backbonejs 为车辆主机构建应用程序。我希望使用框架的读/写函数而不是使用 HTTP 请求来持久化我的一些模型。
查看backbonejs.org 上的fetch 方法的文档,并没有太多解释。我假设我只需要覆盖 save() 和 fetch() 方法。
这可以正常保存,如下所示:
对于获取,我不确定这应该是什么样子。我试过了:
有人可以告诉我如何正确地做到这一点吗?
javascript - 在 Backbonejs 中解析包含子模型的模型数据
我正在使用 Backbonejs 构建仪表板车辆应用程序。我的一些模型使用 HTTP 持久化回服务器,而其他模型则持久化到本地文件系统,只能通过框架的读/写函数访问。
我的问题专门针对那些我坚持到文件系统的问题,尽管它可能适用于任何一种情况。
我的 Player 模型(您可能已经猜到它处理音频播放)包含一个 Playlist 对象。当应用程序关闭时,我将当前播放器状态保存到文件系统,以便下次启动时可以恢复它。
我看到 toJSON 也自动为包含的模型调用 toJSON,导致存储的 JSON 看起来像:
那么我有我重写的 fetch 函数:
现在的问题是,一旦调用 fetch ,重置事件就会触发并且我的播放器视图会尝试更新。播放器视图假设播放器模型包含一个播放列表对象。从技术上讲,它确实如此,但此时播放列表只是一个 JavaScript 哈希,因为它尚未被解析为 Playlist 实例。
我想知道根据读取的文件返回的数据,我将在模型中的何处创建播放列表实例。
免责声明:Backbonejs 菜鸟
backbone.js - REST api 中的骨干和复合模型 - 有可能吗?
首先,我很抱歉,因为我不确定问题标题是否准确地描述了我正在尝试做的事情。我喜欢/讨厌主干 REST api 结构,但我正在尝试添加一点并支持模型之间关系的“图表”。
所以最简单的终点是这样的:
或者
但我想更进一步,展示关系的“图表”:
或者
我正在尝试考虑采取的最佳方法,并想知道是否有人愿意在这方面分享任何经验。就目前而言,我已经为machines
和projects
非关系端点工作定义了模型。我想我的下一步是创建一个虚构的复合模型MachinesProjects
- 但不确定我将如何破解模型的 url 连接以响应表示 id 的不同属性。此外,我希望有更好的东西,因为我真的不想为模型类型之间的图中的每个弧明确定义一个模型。
backbone.js - 主干中的嵌套模型充满了数据
我创建了一个模型(RuleModel),它的属性是 other model(RuleInformationModel) 。但是在传递 json(SampleRule) 数据时,内部模型没有被填充。
当我做控制台时,我变得不确定。所以我在 cosole 中检查了 RuleInformationModel,它只有来自示例 json 的默认值值没有被添加到这个内部模型中。