问题标签 [backbone-views]
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 - Meteor 加载 jQuery 的方式有什么奇怪的吗?
当我使用 Meteor 时,我在使用标准 jQuery 功能时遇到了一些困难。我的主要“客户端/服务器”JS 文件如下所示:
当我加载应用程序时,'bar' 记录正常,但 .append 不起作用。如果我在页面加载后在控制台中调用相同的 .append ,它工作正常。(类似地,如果我在非 Meteor 设置中运行相同的代码,它也可以正常工作。)
我实际想要运行的代码如下所示:
在这里不起作用的方法是在视图中渲染。渲染方法的 console.log 位很好,但 jQuery 附加不起作用。最初我想知道问题是否与我使用 Backbone 的方式有关,但现在我想知道这是否是 Meteor/jQuery 问题?
backbone.js - 处理对象的子集
什么是如何处理对象子集的好模式。
假设我有一个储物柜列表,每个储物柜内都有一组物品。UI 与此类似——我们希望 ASCII 艺术能够通过。
储物柜#2 被选中(激活)。我一直在做的是在储物柜#2 被激活时设置回调,然后执行 ItemCollection.fetch({ data: { lid: LOCKER_ID }}) 来获取准备显示的项目子集。感觉不太像骨干。
有什么更好的方法 -
- 加载模型的子集 - 如果是这样,是否有一个很好的例子来说明如何做到这一点?
- 加载所有内容然后对集合进行主干过滤?
- 也许是一个合适的分页示例?
javascript - Backbone.View:删除不同模型相关的不同视图
我需要显示three different views
哪些与three different model
收藏相关。
为了执行此任务,我编写了以下代码。(*)
请告诉我这是否是正确的方法,无论如何它是有效的。
这是我的问题。
在其中一个视图中,假设firstView
, 可以对服务器执行 a DELETE request
,该服务器注意删除与 this 相关的所有数据three view
。
现在我需要删除我的三个视图......但是firstView
我无法访问其他两个视图。
1) 我该如何执行此任务?
2)我应该重新设计/改进我的实现吗?
(*)
PS:
_id 用于构建集合或模型的 url 参数
当我删除 model1 时,与 collection2 和 collection3 相关的 view2 和 view3 应该被删除。
javascript - 渲染和删除多个视图...
我希望我足够清楚,否则请我澄清。
我想删除与主模板一致的最终创建视图...</p>
我确实尝试了以下实现,但没有成功。
您可以从评论中看到的问题在view1.js
从我的 js 控制台它可以工作:
我的目标是:
1)当我加载 mainView.js 模块时,我想创建一个模板来附加我的视图(view1、view2、view3)
2)当我触发删除视图时,每个 DOM 都附加了视图, 应该删除。
3)当我再次调用mainView.js
模块时,应该重新创建模板。
如果您有其他想法要建议,请发表。
感谢@nikoshr 建议this.$el
,在view1.j
, 中定义了,当我在中调用渲染时,view1.js
它被this.$el
正确填充,
但它没有附加到文档正文。
如何在不使用 append 或类似的 jquery 方法的情况下实现它main-template.html
?
这是我的渲染功能:
backbone.js - Backbone.js 使用单个视图呈现重置集合
我正在尝试使用使用重置属性的选择框从单个视图呈现过滤后的集合。第一个问题是选择框和渲染的内容必须都出现在同一个 div 中才能工作。这是正常的吗?第二个问题是,它仅显示过滤后的结果,而是将过滤后的集合附加到呈现内容的末尾而不是替换它。我知道在我的 ._each 函数中附加将不起作用,因为它只会将过滤后的项目附加到整个集合的结尾。下面是我的代码示例:
javascript - 为给定的 object_id 获取和呈现集合的最佳方式
我正在尝试实现一个简单的应用程序,它能够获取给定的集合object_id
。
从GET response
服务器看起来像这样:
我的目标是:
当用户选择一个object_id
.
我的代码的起点如下:
我的问题是:
* 最好的方法是什么:1
) 设置2
) 触发MyCollection 然后
3) 触发?*中的函数object_id value
MyModel
fetch
render
myView
或激活我的目标?
PS:
我的基本代码如下所示:
javascript - Backbone - 从 json 填充集合并更新视图
我正在尝试使用 JSON 文件中的数据填充集合。我是骨干初学者,所以我的问题可能很容易解决。但是整天都在为此苦苦挣扎-所以现在我正在寻求指导。
我正在创建一份问卷,并希望从本地存储的 JSON 文件中加载问题(稍后我将从服务器获取问题)。
我不确定我的集合是否完全被填充,或者问题是否是视图没有更新。我已经阅读了很多教程,并且从不同的地方得到了一些想法。
好吧..这是我的javascript代码:
我有以下 HTML 代码:
JSON 文件如下所示:
奖励问题:我使用萤火虫,但发现调试这些东西非常困难。如果我在控制台中写入console.log(Questions);
,我会得到ReferenceError: Questions is not defined。这是为什么?
更新:问题解决了。我以前没有使用过网络服务器,现在我使用了(我只是在浏览器中打开了文件)。代码工作正常。
backbone.js - 扩展模型的最佳方式
根据 Backbone.js 文档Model-parse执行以下操作:
每当服务器返回模型的数据,获取和保存时,都会调用 parse。
为了增加我已经加载的模型,我使用Model.parse()
. 我通过使用fetch
发出额外的数据请求来完成此操作,然后使用该数据将属性添加到现有模型。
例子:
fetch 对象{age: 19}
在解析器之后{age: 19, isAdult: true}
当我执行保存请求时,在 PUT 请求中我还有其他不需要的参数(例如 isAdult)。我想要原始模型(PUT 请求中没有其他参数)。
在 Backbone 中实现我的目标的最佳方式是什么?
backbone.js - Backbone.js:如何取消视图将父元素添加到模板
我知道 Backbone.js 的 View 对象有参数,如id
, tagName
, className
。
它将这些用于插入模板的父元素。当我不设置它们时,它会将一个<div>
作为模板的父级添加到模板中。
但这真的让我很烦,因为有时我不需要父母!我的模板中已经有我需要的所有内容,那么如何取消它?
backbone.js - Backbone.View 和 Backbone.Model 的实例太多
我有一个主视图,负责渲染其他视图…… 这是完整的代码 (1) (2) (3)。
当我第一次加载视图(View1、View2、View3)时,一切正常。
然后,如果我尝试重新加载视图来更改 this.options 显然它似乎没问题。
但我注意到有一些僵尸视图......,
我的意思是内存中以前视图的实例。
我使用这种和平的代码发现了这一点……</p>
看着cid
我发现每次我重新加载视图时都会生成具有不同 cid 的新视图并保留在内存中.. 示例
等等...
我的设计有什么问题?我该如何解决?
(1) 入口点
(2) 主应用程序
(3)