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

0 投票
1 回答
561 浏览

javascript - Backbone:单例视图?

我有几个不同的视图,它们主要是建立起来的(布局组件、布局、主视图)。

当我现在在不同的视图之间切换时,必须重新渲染整个页面。

至少在“窗口”中缓存布局视图并重新加载它们不是更好吗?

类似于主干视图的单例模式?

我该怎么做呢?很简单:

足够的?

还有什么我需要考虑的吗?

0 投票
2 回答
293 浏览

ruby-on-rails - 主干.js 视图中的每个集合

如果我在视图中循环集合,它似乎是空的,不会出现警报对话框。当我在这个视图中使用 console.log(this.collection) 时,它看起来没问题(这个集合中有 16 个元素)。

我的路由器:(集合 url:'/api/employees',这是一个 rails json 输出)

和我的 index.js 视图:

编辑:

这是 console.log(this.collection) 在视图中的输出:http: //i.stack.imgur.com/ZQBUD.png

编辑2:

我认为 Rails 是有罪的。当我使用静态集合时,一切正常

0 投票
1 回答
2607 浏览

backbone.js - Backbone.js 事件处理程序触发多次

我有一个名为 Form 的视图,它呈现一个表单以编辑列表,或者呈现列表本身,具体取决于传递给呈现的参数。我添加了事件处理程序,以便可以切换显示/编辑模式。为了简单起见,我从下面的代码中删除了它,但这只是为 View 在上下文中所做的事情提供了一些上下文。

我可以在另一个需要表单或要呈现的列表的视图中将此表单视图实例化为子视图,我已在 New 视图中将其呈现为表单。

当我需要保存时,我调用 form:save 事件,它会在 Form 视图中触发一个保存表单的例程,我刚刚在此处调用了一个 console.log 来显示它的工作原理。在我的代码中,我通过 $('a#submit').click 绑定调用 form:save 绑定,该绑定绑定到 ApplicationView 插入的导航按钮(但我认为这对于这个问题的目的并不重要。)

假设我离开了新视图,并且多次返回。当我点击保存时,该方法会运行我实例化并呈现新表单视图的次数。

至今:

我已经尝试在 New 视图的 Form 视图上的 close 方法中执行 unbind() 和 remove() ,但没有成功。

我想我可能在范围界定方面有问题,但我不确定。

我知道这与我的导航绑定无关。

我认为这可能与僵尸视图有关。

任何让它只运行一次的指针?

0 投票
1 回答
674 浏览

javascript - Backbone.js 视图可以有模型和集合吗?

Backbone.jsView可以有 aModel和 aCollection吗?

我问的原因是因为我正在使用一个视图,该视图包含一张地图,上面标有位置(使用传单库)。

是一组模型,其中Collection包含要在地图上绘制的坐标。

Model保存诸如地图边界和地图形状之类的东西。

不知道还有什么办法可以把这个拉下来......

任何帮助表示赞赏,谢谢!

0 投票
2 回答
262 浏览

backbone.js - 谁应该在主干应用程序中获取模型?

在主干应用程序中,关于何时获取模型的最佳实践是什么?我可以看到以下可能性。

  • View 调用模型 fetch 方法
  • 其他一些 JavaScript 代码调用 fetch 模型?如果是这样,该代码将在何时以及采用何种结构?这是 Backbone 中缺少的控制器概念吗?
0 投票
1 回答
332 浏览

backbone.js - 如何取消绑定默认视图事件绑定?

我有一个由 Backbone Marionette 项目视图呈现的集合。每当重置集合时,都会重新呈现视图。据我所知,这是默认的Backbone.Marionette行为。有没有办法可以禁用它?

0 投票
2 回答
723 浏览

javascript - 替换视图后没有触发主干视图事件,然后放回页面

问题:

视图内设置的事件不会在视图被替换为其他内容后触发$element.html(anotherView),然后使用#element.html(theView).

例子:

执行此代码后,事件起作用:

当页面上的视图被其他内容替换时,此代码将在稍后发生:

将视图添加回页面后,事件不再起作用:

0 投票
1 回答
2443 浏览

ruby-on-rails - 带有 Backbone.js 和 Handlebars 的 Rails

关于我的应用程序:
- 我将 Rails 3.2.6 与主干.js(backbone-on-rails gem)和车把模板引擎一起使用。
- 创建了路线和视图,效果很好。我的观点:

-我创建了一个模板(在资产目录中:资产/模板/人民/索引.hbs):

当我刷新页面时,我收到以下错误消息:

未捕获的类型错误:无法调用 null 的方法“匹配”

我认为模板文件可能是错误的:

这包含:

0 投票
1 回答
653 浏览

backbone.js - 返回时不呈现主干集合

我有一个我正在使用 Trigger.io 构建的 Backbone 应用程序,当我单击手机工具栏中的后退按钮时,为什么数据会消失有点困惑。

这是设置:

我有一个视图 SearchResultsView,看起来像这样(为简洁起见,删除了 Trigger.io 代码):

这是模板:

这是路由器:

以下是它在实践中的工作方式:当我最初加载页面时,没有结果列表(应该是这样)。我输入查询并执行搜索,它会返回并按应有的方式填充列表。然后,我将单击一个项目以转到另一个视图,当我单击“返回”时,列表再次为空。

我正在尝试做的是测试该集合是否仍然存在,如果存在,请继续并重新渲染列表,但它永远不会渲染列表。该集合确实存在,因为我可以将它记录到控制台并查看数据。

我怀疑#resultsList 元素尚不可用,因此当它将结果附加到它时,它找不到它,因此没有显示任何内容。

所以:

  • 这听起来对吗?
  • 为什么?当一切正常时,这与初始负载有何不同?

希望我足够清楚。为了简短起见,我没有包括模型和集合。如果这些有帮助,我很乐意将它们包括在内(尽管,我倾向于认为这是一个观点问题)。

谢谢!

0 投票
1 回答
107 浏览

backbone.js - 如何抑制 # hrefs 的点击事件?

当链接href是哈希(#)时,我想自动抑制点击事件。我不想在每个视图中使用 e.preventDefault() 来停止事件。

如何停止# hrefs 的点击事件应用程序范围?