问题标签 [marionette]

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 回答
4990 浏览

javascript - CoffeeScript/Backbone/Marionette - 教程示例转换和范围问题

我正在尝试在 CoffeeScript 中创建此示例的基本版本:http: //davidsulc.com/blog/2012/04/15/a-simple-backbone-marionette-tutorial/。所有依赖项都按照我编写它们的顺序(在正文中)声明为 .coffee 文件,并且 jQuery + Underscore + Backbone + Marionette 在头部。

我有一个模型,thing.coffee

我的第一个问题是范围界定:如果我不声明window.Thing,下一个文件(的集合Things,找不到模型Thing等等。我在那里做错了什么?

我有一个收藏,things.coffee

我有一个木偶视图,thing_view.coffee

我有一个木偶视图,things_view.coffee

我有一个应用程序myapp.coffee

我的 html 文件如下所示:

console.log

所以,不用说我对发生了什么感到困惑——我敢肯定这里有很多问题,所以请帮忙!

0 投票
2 回答
817 浏览

marionette - 作用于 onRender 中的元素不起作用

当我尝试对onRender方法(或item:rendered回调)中的某些 HTML 元素进行操作时,它会失败。

例子:

其他操作也是如此,例如将焦点放在某个领域。
你怎么处理?有效的技巧,setTimeout但它不是很优雅。

0 投票
1 回答
284 浏览

backbone.js - 处理对象的子集

什么是如何处理对象子集的好模式。

假设我有一个储物柜列表,每个储物柜内都有一组物品。UI 与此类似——我们希望 ASCII 艺术能够通过。

储物柜#2 被选中(激活)。我一直在做的是在储物柜#2 被激活时设置回调,然后执行 ItemCollection.fetch({ data: { lid: LOCKER_ID }}) 来获取准备显示的项目子集。感觉不太像骨干。

有什么更好的方法 -

  • 加载模型的子集 - 如果是这样,是否有一个很好的例子来说明如何做到这一点?
  • 加载所有内容然后对集合进行主干过滤?
  • 也许是一个合适的分页示例?
0 投票
2 回答
292 浏览

javascript - 我的一些应用程序初始化程序似乎没有触发?

我有一个名为的顶级应用程序SearchApp,它有一个名为TeamApp. 这些文件的结构如下:

我在以下位置初始化我的应用程序search_app.js.coffee

并在 html 视图中启动它:

子模块TeamApp分布在几个文件中(如下)。问题是TeamApp模块中的某些文件似乎无法将初始化程序添加到SearchApp. 事实证明,我可以console.log在一个文件中进行初始化,但不能在另一个文件中进行初始化。

不能将一个模块拆分为多个文件吗?这是我能想到的唯一事情发生在这里。还有什么可能导致问题?

0 投票
1 回答
991 浏览

javascript - 视图未渲染,区域与布局

即使在阅读了 wiki 和关于何时使用布局与区域等的示例之后,我仍然有点困惑,但我的问题是我无法在页面上显示任何内容 - 根本没有任何渲染。html应该真的只有菜单和内容,内容可以根据Views改变。(我以同样的方式制作菜单,所以我也可以交换它)。

我有一个 html 文件:

对于这个例子,我已经将 js 压缩成一个文件,app.coffee

console.log 显示:

我已经阅读了文档/示例一百万次,但是所有这些东西的学习曲线都很复杂。请帮忙!

0 投票
2 回答
21441 浏览

javascript - 将主干模型绑定到 Marionette ItemView - 阻塞 .fetch()?

这是一个两部分的问题。1)有没有更好的方法将模型异步渲染到视图?我目前正在使用fetch模型中的方法发出 ajax 请求(尽管我在初始化时显式调用它),然后使用应用程序事件呈现模板化视图,该事件在调用方法vent后从模型内部发布parse。酷但不稳定?2)阻塞fetch方法有用吗,有可能吗?

应用程序将其呈现到页面:

然后它获取模型并呈现:

但是,如果我不使用vent触发器,它(预期)会呈现:

html模板:

应用程序.js

0 投票
1 回答
1325 浏览

javascript - 覆盖 .fetch() 适用于虚假数据、urlRoot 错误和实际模型 ajax 请求

我很困惑 - 我以为我的模型绑定工作正常,但它只是一个带有伪造 ajax 请求的 jsFiddle。我已将模型绑定到视图,如果我覆盖.fetch()并伪造响应,一切正常(我可以更新模型并在页面上更新视图)。但是,当我覆盖.fetch()并使用urlRoot参数并等待响应时,我会收到错误。

.fetch()这是工作的 jsFiddle,在使用伪造的响应调用后呈现模型,而不是更改:

http://jsfiddle.net/franklovecchio/FkNwG/182/

所以如果我在服务器端有一个 API 调用:

/thing/:id

有一个示例响应/thing/1

我注释掉.fetch(),我得到控制台错误:

.fetch()注释掉的代码:

0 投票
1 回答
311 浏览

backbone.js - 如何同步代表相同对象但具有不同cid的两个模型?

在我的应用程序中,用户可以创建车辆。在“显示特定车辆”页面上,我有一个 Vehicle 实例(从Backbone Relational 扩展 RelationalModel)。当我改变车辆的头像时,这个模型就改变了。

在应用程序的另一个页面“显示车辆列表”中,我有一个显示用户车辆的画廊。模型(也是 Vehicle 的实例)在一个集合中。不幸的是,它们具有不同的 CID,因此当用户在显示页面中更改车辆的头像时,它们不会正确更新。

如何处理?我希望 9 号车辆在任何地方都一样。

0 投票
1 回答
732 浏览

backbone.js - 通过 fetch 刷新事件后未触发主干事件

我正在使用backbone.marionette 并具有以下CollectionView ItemView 组合:

我从嵌入在页面上的初始 json 集合创建视图。事件哈希中的事件完美运行。

然后在下拉更改事件中,我在集合上调用 fetch() 以检索新的对象集合。DOM 被重建,但事件处理程序没有被重新附加/

有谁知道为什么会发生这种情况?

0 投票
1 回答
420 浏览

javascript - 如何使用 Backbone.Marionette 构建用于将项目创建到列表中的应用程序?

这是使用 Marionette 时仍然让我感到困惑的一件事。

想象一个用于查看评论列表和发表新评论的简单界面。我目前构建它的方式与CommentApp我在下面包含的类似。

我想我的问题有两个部分:

这是我应该如何构建这种类型的应用程序吗?我尝试尽可能遵循BBCloneMail 示例应用程序,但这似乎没有提供将新项目创建到集合中的示例。

为什么layout.listRegion下面会返回undefined我尝试调用.show()它的地方?更一般地说,是否有一种确定的方法来处理触发和绑定到'layout:rendered'具有嵌套布局的事件。它似乎变得相当混乱。

'comment_layout'模板只是一个基本的容器模板:

我正在使用JST它来渲染它。我已经用这段代码覆盖了渲染函数: