问题标签 [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.
handlebars.js - 在 Rails 资产管道中使用外部把手模板和 Marionette
是否可以在不使用 Marionette.Async 的情况下引用外部 Handlebars 模板文件?
我只是想更好地组织我的模板片段(Rails Asset Pipeline),因此不需要异步加载,但需要单独的文件。有什么建议吗?
谢谢!
backbone.js - 骨干.木偶区域和布局
有没有办法为木偶区域指定模板?现在我正在使用布局对象来指定模板。
为什么当我在布局对象中定义它们时,我无法直接从我的应用对象访问我的区域?
谢谢
requirejs - 骨干木偶 + i18n + 车把
有人可以发布将这些库组合在一起的示例吗?包括 i18n 和 marionette 的处理程序。
谢谢
backbone.js - 基于某些标准对 Backbone 集合视图进行分段
我对BackboneJS和Marionette有点陌生,我对如何使用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项目进行模板化。
backbone.js - 骨干(木偶)异步模块化模板加载
目前在我正在处理的 Backbone 项目中,我已经按模块组合了所有模板。就像是:
users.html
#profileTemplate
#changePasswordTemplate
- ...
something.html
#someTemplate
#anotherTemplate
然后我根据需要按模块加载模板$.get
。我打算使用 Backbone Marionette 来加载这些模板,建议的方法是:link
这意味着我必须将我的模板分解成更多的文件,这意味着更多的网络请求。我想知道这样做的推荐方法是什么?将所有内容组合成一个大文件或许多小文件或模块之间的某个地方?如果按模块,那么我将需要添加一个参数以loadTemplate(moduleUrl, templateSelector, callback)
尚未尝试过,明天会这样做,但即使它不会破坏任何东西,是否也推荐这样做?我正在覆盖第 3 方框架方法,更糟糕的是,更改其方法签名?那么推荐的解决方案是什么?
也许因为我使用的是 RequireJS,所以我的模板可以通过 Require 加载?
backbone.js - 如何在骨干木偶初始化程序中处理异步代码
我正在尝试使用 marionette 插件将主干应用程序放在一起,并且在让初始化程序按照我期望的方式工作时遇到了一些麻烦。我有以下代码:
请注意,在上面的代码中,我有两个console.log
调用,一个在初始化程序中,一个在initialize:after
处理程序中。两者都记录相同的对象属性。如您所见,我遇到的是处理程序中的console.log
调用在初始化程序处理程序中的调用之前initialize:after
被调用。我意识到这是因为初始化程序中有一个异步调用......我需要知道的是,在应用程序中执行任何其他操作之前,如何确保我的初始化程序中的所有异步代码都是完整的? 这有一个好的模式吗?我在文档中没有找到任何指示如何正确处理此问题的内容。success
谢谢。
backbone.js - `lib` 中的骨干木偶、RequireJS 和依赖项
我一直在开发 Backbone/RequireJS 应用程序,现在正在更新它以使用 Marionette。当 Marionette AMD 尝试在 root 中搜索 jquery、主干和下划线时,它一开始会中断/
,但是,我有这些库/lib
,我可以修改代码。解决这个问题的正确方法是什么?(如果可能的话,不要将库移出/lib
)。
我现在所做的是使用有效的非 AMD 版本。但有时,我CollectionView
在某些视图中遇到未定义的错误,这让我想知道它是否与为 RequireJS 使用非 AMD 构建有关
backbone.js - 如何使用 Backbone.Marionette 处理分页
我有一个使用外部 API 填充的集合,API 返回许多对象 + 更多对象的分页详细信息,然后我想在我的视图中可能只显示这些对象的一个子集,但允许进一步的分页视图也
为了更好地解释我的情况:
- 从服务器获取 20 个结果,获取更多页面的分页数据
- 显示 10 个结果 + 更多按钮
- 点击更多,显示 10 个结果 + 更多按钮
- 点击更多,从服务器获取 20 个结果,显示 10 个结果 + 更多按钮...
你的解决方案是什么?我找到了Backbone.Paginator,但我不知道它与 Marionette 的集成情况如何,或者是否已经存在Backbone.Marionette.Paginator扩展:)
backbone.js - Backbone Marionette emptyView 模板被添加到 DOM 两次
当复合视图的集合没有模型时,我使用带有 emptyView 属性的 Marionette 复合视图来呈现简单模板。emptyView 在我的应用程序的多个位置都可以正常工作,但由于某种原因,在一个视图中,emptyView 在页面上呈现了两次。
我最初的想法是视图正在重新渲染,而不是在同步集合时自行删除。初始化函数中的 console.log 显示初始化只被调用一次。
正如你所看到的,这里没有什么太疯狂的事情。空列表模板只是一个简单的 h4 标签,其中包含一些文本。
关于可能导致这种情况的任何想法?
javascript - 测试来自 Backbone.View 的触发点击,这会打开一个新的 Backbone.View
我有两个主干视图MainView
和PopupView
.
MainView 包含一个帮助按钮。当触发帮助按钮处理程序时,它会显示 Backbone.View。
我的问题是我应该如何从MainView
模块中测试这种行为?
这是我的代码MainView
:
这是我关于 mainView.spec 的代码:
这是我关于应用程序的代码: