问题标签 [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.

0 投票
2 回答
1941 浏览

javascript - 如何取消设置 _id 主干模型属性?

我想从模型实例中获取属性,unset()使用模型方法发出请求_idPOSTsave()

但我得到了Uncaught TypeError: Object [object Object] has no method 'call' backbone-min.js因为这条线:

我正在使用idAttribute: "_id",所以我尝试了:

但它不会取消设置_id属性。

0 投票
0 回答
1066 浏览

javascript - “递归过多”主干错误

我正在为我的应用程序使用 BackboneJS。在我的场景中,我有一个包含booksCollection所有书籍列表(比如模型)的集合(比如Book)。我需要根据 获取某本书id并将其传递给视图。我有以下代码:

在检查book时,我发现它具有collection所有模型的属性booksCollection。所以,当试图保存(设置几个属性后)这个模型时,我得到这个错误“递归太多”。

通过在集合上调用get方法返回的模型是对象吗?Backbonereadonly

作为快速修复,我正在取消设置collection属性book,然后保存模型

book.unset('collection', {静默: true });

这是一个正确的方法吗?

谢谢,安吉

0 投票
1 回答
1256 浏览

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/

0 投票
1 回答
703 浏览

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() 方法调用的源视图来在模型本身中处理这个更有意义。这可能吗?

0 投票
1 回答
1663 浏览

javascript - Backbone.js - 模型内的集合 - 对象函数 (a){return new n(a)} 没有方法“有”

我得到一个

fetch()在我的模型上调用该方法时出错。继承人的代码:

当我第一次检索锻炼集合时,一切正常。但是,当我打电话时getWorkoutDetails,我得到了错误。通过插入警报和console.logs锻炼parse()模型,我发现它确实从服务器获得了正确的响应,但由于某种原因,它给出了这个错误。

有任何想法吗?谢谢。

0 投票
4 回答
11340 浏览

javascript - 如何知道 Backbone model.fetch() 何时完成?

我像这样绑定我的主干模型的更改事件。

有时我想获取模型的最新版本并强制渲染视图。所以我这样做

不幸的是,model.fetch() 仅在新数据与先前存储在模型中的数据不同时才会触发更改事件。

如何在 fetch 完成时始终触发 this.render 回调,无论它是否触发更改事件?

在此先感谢您的帮助

0 投票
2 回答
539 浏览

javascript - 覆盖 Backbonejs 模型获取函数

我正在使用 Backbonejs 为车辆主机构建应用程序。我希望使用框架的读/写函数而不是使用 HTTP 请求来持久化我的一些模型。

查看backbonejs.org 上的fetch 方法的文档,并没有太多解释。我假设我只需要覆盖 save() 和 fetch() 方法。

这可以正常保存,如下所示:

对于获取,我不确定这应该是什么样子。我试过了:

有人可以告诉我如何正确地做到这一点吗?

0 投票
1 回答
166 浏览

javascript - 在 Backbonejs 中解析包含子模型的模型数据

我正在使用 Backbonejs 构建仪表板车辆应用程序。我的一些模型使用 HTTP 持久化回服务器,而其他模型则持久化到本地文件系统,只能通过框架的读/写函数访问。

我的问题专门针对那些我坚持到文件系统的问题,尽管它可能适用于任何一种情况。

我的 Player 模型(您可能已经猜到它处理音频播放)包含一个 Playlist 对象。当应用程序关闭时,我将当前播放器状态保存到文件系统,以便下次启动时可以恢复它。

我看到 toJSON 也自动为包含的模型调用 toJSON,导致存储的 JSON 看起来像:

那么我有我重写的 fetch 函数:

现在的问题是,一旦调用 fetch ,重置事件就会触发并且我的播放器视图会尝试更新。播放器视图假设播放器模型包含一个播放列表对象。从技术上讲,它确实如此,但此时播放列表只是一个 JavaScript 哈希,因为它尚未被解析为 Playlist 实例。

我想知道根据读取的文件返回的数据,我将在模型中的何处创建播放列表实例。

免责声明:Backbonejs 菜鸟

0 投票
1 回答
473 浏览

backbone.js - REST api 中的骨干和复合模型 - 有可能吗?

首先,我很抱歉,因为我不确定问题标题是否准确地描述了我正在尝试做的事情。我喜欢/讨厌主干 REST api 结构,但我正在尝试添加一点并支持模型之间关系的“图表”。

所以最简单的终点是这样的:

或者

但我想更进一步,展示关系的“图表”:

或者

我正在尝试考虑采取的最佳方法,并想知道是否有人愿意在这方面分享任何经验。就目前而言,我已经为machinesprojects非关系端点工作定义了模型。我想我的下一步是创建一个虚构的复合模型MachinesProjects- 但不确定我将如何破解模型的 url 连接以响应表示 id 的不同属性。此外,我希望有更好的东西,因为我真的不想为模型类型之间的图中的每个弧明确定义一个模型。

0 投票
1 回答
147 浏览

backbone.js - 主干中的嵌套模型充满了数据

我创建了一个模型(RuleModel),它的属性是 other model(RuleInformationModel) 。但是在传递 json(SampleRule) 数据时,内部模型没有被填充。

当我做控制台时,我变得不确定。所以我在 cosole 中检查了 RuleInformationModel,它只有来自示例 json 的默认值值没有被添加到这个内部模型中。