问题标签 [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 投票
1 回答
2514 浏览

handlebars.js - 在 Rails 资产管道中使用外部把手模板和 Marionette

是否可以在不使用 Marionette.Async 的情况下引用外部 Handlebars 模板文件?

我只是想更好地组织我的模板片段(Rails Asset Pipeline),因此不需要异步加载,但需要单独的文件。有什么建议吗?

谢谢!

0 投票
2 回答
2728 浏览

backbone.js - 骨干.木偶区域和布局

有没有办法为木偶区域指定模板?现在我正在使用布局对象来指定模板。

为什么当我在布局对象中定义它们时,我无法直接从我的应用对象访问我的区域?

谢谢

0 投票
2 回答
4820 浏览

requirejs - 骨干木偶 + i18n + 车把

有人可以发布将这些库组合在一起的示例吗?包括 i18n 和 marionette 的处理程序。

谢谢

0 投票
1 回答
229 浏览

backbone.js - 基于某些标准对 Backbone 集合视图进行分段

我对BackboneJSMarionette有点陌生,我对如何使用CollectionView实现一些棘手的行为有点困惑。假设我有一个约会列表,每个约会都有一个约会日期/时间(存储为 unix 时间戳,但这并不重要)。

当我显示这些时,我想按如下方式显示它们:

今天

  • 会议 A(上午 10:00)
  • 会议 B(上午 11:00)
  • 会议 C(下午 1:00)
  • ... 还有 4 个

未来 7 天

  • 会议 D(星期一下午 3 点)
  • 会议 E(星期二下午 2 点)
  • ... 还有 7 个

我正在考虑的方法是在接下来的 7 天(包括今天)从服务器中提取一个集合,然后对集合进行 2 次查看(今天一次,一周一次)。这就是我正在努力解决的问题:

  • AFAIK,Marionette.CollectionView 呈现集合中的所有元素。是否有一种简单的方法可以覆盖此行为以仅渲染 3 或 4 个项目?
  • 我该如何处理... 和更多行?它不是真正的模型,但它的数据是从底层集合中计算出来的。

如果它有所作为,我将使用@SlexAxton 的requirejs-handlebars项目进行模板化。

0 投票
1 回答
1170 浏览

backbone.js - 骨干(木偶)异步模块化模板加载

目前在我正在处理的 Backbone 项目中,我已经按模块组合了所有模板。就像是:

  • users.html
    • #profileTemplate
    • #changePasswordTemplate
    • ...
  • something.html
    • #someTemplate
    • #anotherTemplate

然后我根据需要按模块加载模板$.get。我打算使用 Backbone Marionette 来加载这些模板,建议的方法是:link

这意味着我必须将我的模板分解成更多的文件,这意味着更多的网络请求。我想知道这样做的推荐方法是什么?将所有内容组合成一个大文件或许多小文件或模块之间的某个地方?如果按模块,那么我将需要添加一个参数以loadTemplate(moduleUrl, templateSelector, callback)尚未尝试过,明天会这样做,但即使它不会破坏任何东西,是否也推荐这样做?我正在覆盖第 3 方框架方法,更糟糕的是,更改其方法签名?那么推荐的解决方案是什么?

也许因为我使用的是 RequireJS,所以我的模板可以通过 Require 加载?

0 投票
3 回答
4506 浏览

backbone.js - 如何在骨干木偶初始化程序中处理异步代码

我正在尝试使用 marionette 插件将主干应用程序放在一起,并且在让初始化程序按照我期望的方式工作时遇到了一些麻烦。我有以下代码:

请注意,在上面的代码中,我有两个console.log调用,一个在初始化程序中,一个在initialize:after处理程序中。两者都记录相同的对象属性。如您所见,我遇到的是处理程序中的console.log调用在初始化程序处理程序中的调用之前initialize:after被调用。我意识到这是因为初始化程序中有一个异步调用......我需要知道的是,在应用程序中执行任何其他操作之前,如何确保我的初始化程序中的所有异步代码都是完整的? 这有一个好的模式吗?我在文档中没有找到任何指示如何正确处理此问题的内容。success

谢谢。

0 投票
2 回答
930 浏览

backbone.js - `lib` 中的骨干木偶、RequireJS 和依赖项

我一直在开发 Backbone/RequireJS 应用程序,现在正在更新它以使用 Marionette。当 Marionette AMD 尝试在 root 中搜索 jquery、主干和下划线时,它一开始会中断/,但是,我有这些库/lib,我可以修改代码。解决这个问题的正确方法是什么?(如果可能的话,不要将库移出/lib)。

我现在所做的是使用有效的非 AMD 版本。但有时,我CollectionView在某些视图中遇到未定义的错误,这让我想知道它是否与为 RequireJS 使用非 AMD 构建有关

0 投票
2 回答
5052 浏览

backbone.js - 如何使用 Backbone.Marionette 处理分页

我有一个使用外部 API 填充的集合,API 返回许多对象 + 更多对象的分页详细信息,然后我想在我的视图中可能只显示这些对象的一个​​子集,但允许进一步的分页视图也

为了更好地解释我的情况:

  1. 从服务器获取 20 个结果,获取更多页面的分页数据
  2. 显示 10 个结果 + 更多按钮
  3. 点击更多,显示 10 个结果 + 更多按钮
  4. 点击更多,从服务器获取 20 个结果,显示 10 个结果 + 更多按钮...

你的解决方案是什么?我找到了Backbone.Paginator,但我不知道它与 Marionette 的集成情况如何,或者是否已经存在Backbone.Marionette.Paginator扩展:)

0 投票
1 回答
1923 浏览

backbone.js - Backbone Marionette emptyView 模板被添加到 DOM 两次

当复合视图的集合没有模型时,我使用带有 emptyView 属性的 Marionette 复合视图来呈现简单模板。emptyView 在我的应用程序的多个位置都可以正常工作,但由于某种原因,在一个视图中,emptyView 在页面上呈现了两次。

我最初的想法是视图正在重新渲染,而不是在同步集合时自行删除。初始化函数中的 console.log 显示初始化只被调用一次。

正如你所看到的,这里没有什么太疯狂的事情。空列表模板只是一个简单的 h4 标签,其中包含一些文本。

关于可能导致这种情况的任何想法?

0 投票
3 回答
4623 浏览

javascript - 测试来自 Backbone.View 的触发点击,这会打开一个新的 Backbone.View

我有两个主干视图MainViewPopupView.

MainView 包含一个帮助按钮。当触发帮助按钮处理程序时,它会显示 Backbone.View。

我的问题是我应该如何从MainView模块中测试这种行为?


这是我的代码MainView


这是我关于 mainView.spec 的代码:


这是我关于应用程序的代码: