问题标签 [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.
javascript - 复合视图绑定到的初始事件
根据复合视图中的复合视图文档,事件reset
,remove
并且add
已经绑定到集合。
说了这么多,为什么我需要绑定reset
事件来渲染我的CompositeView?
PS:
我正在使用Backbone.Marionette v0.9.1
更多细节请看代码(1),(2)
其实问题是关于serializeData,因为当从 initialEvents
变量has_message调用渲染函数时设置为零。所以ul.messages
没有在模板中定义。我应该如何解决它?
(1)
(2)
backbone.js - 初始化器的主干木偶模块顺序
我一直在研究 Backbone Marionette,一直在为我自己的纯 Backbone 应用程序模仿它的一部分。看起来很有希望,但我不确定的一件事是初始化程序运行的模块结构和顺序。主要是关于Backbone.history.start
Application
我想我将拥有一个包含 , 等模块Auth
的Todo
顶层(Comments
我通常从一个简单的 todo 应用程序开始尝试框架)。每个模块都有自己的路线。据我了解,它们必须在我之前进行初始化Backbone.history.start()
。我是否只是触发所有模块从我的顶层Application
开始,然后开始历史记录?这将确保模块路由器在启动之前被初始化Backbone.history
。这听起来像是启动了可能不需要的模块,从而减慢了应用程序的速度?
当然,我知道的大多数应用程序,不需要很大,启动速度可能是可以接受的。但是我想知道最佳实践或建议是什么
javascript - CompositeView和ItemView,如何处理两个视图和模板?
我有以下 CompositeView(1)。
我想知道对于 MyCollection 的每个模型,渲染两个模板和视图以制作类似的东西的最佳方法是什么(2)。
(1)
(2)
backbone.js - 控制器上带有路由器的模块化 Backbone.js Marionette 应用程序 - 路由不起作用
我目前正在使用 Backbone.js Marionette 框架重写一个已经存在的应用程序。新堆栈应该是相当模块化的,以便可以很容易地添加新控制器。该应用程序有一个 node.js 后端,并为每个调用提供一个 json 响应。
该应用程序是使用(如前所述)Marionette 应用程序定义的:
PlugUI.js: var PlugUI = new Backbone.Marionette.Application();
所以,我想,这是相当标准的。然后我确实提供了一个具有一些相当标准内容(即模型、视图和路由器方法)的“控制器”,如下所示:
只要我直接触发这个控制器的视图,这就会很好地工作。如果我在其中添加另一个具有相同内容的控制器并通过路由器触发 show 方法,那么基本上什么都不会发生。我现在在前端添加了一个事件,以在新控制器中显示视图,这确实有效,但我认为这些东西应该通过路由器工作。我理解错了吗?
有关完整(不工作)的源代码,请查看github 项目。
非常感谢任何帮助。
backbone.js - 如何取消绑定默认视图事件绑定?
我有一个由 Backbone Marionette 项目视图呈现的集合。每当重置集合时,都会重新呈现视图。据我所知,这是默认的Backbone.Marionette行为。有没有办法可以禁用它?
marionette - Backbone.Marionette TemplateHelpers:访问存储在模型之外的数据
问题:
我正在尝试制作一个可以在单个表单元素以及表单顶部显示错误消息的表单。
我希望能够将错误存储在模型之外的某个地方。默认情况下,如果我没记错的话,模板中只包含模型属性。所以我正在尝试使用模板助手添加错误。到目前为止,它不起作用并因以下错误而中断:
相关代码如下:
风景:
LoginFormView 对象只是一个模块定义。它稍后会被实例化并注入到 Backbone.Marionette.Region 中。我不确定这是否与我遇到的问题有关,但我想我会提到它以防万一。
模板:
似乎错误没有进入模板,因为错误在模板中被抛出:
查看 Backbone.Marionette 源代码,我的印象是 templateHelpers 方法被执行,并且它的输出与“数据”对象(序列化模型)合并。
如果是这样的话,我怎么能访问我的模型的属性,但“错误”属性是未定义的?
解决方案:
joverson很友好地指出了问题所在。我的新 templateHelpers 方法现在如下所示:
javascript - 在 CompositeView 中对集合进行排序的最佳方法
我正在尝试对一个集合进行排序Marionette.CompositeView
。
我有一个看起来像这样的集合:
我需要以相反的顺序按 id 对集合进行排序。
实际上它仅在我重新加载页面时才有效。
当我添加一个新模型时,新项目显然是随机添加到列表中的。
如果我刷新页面,它们将得到很好的排序。
我的问题是:
1)添加新模型时如何解决问题?
2)有可能改进代码吗?
这是我的代码:
javascript - 创建保存新模型时如何获取ID
在我的Marionette.CompositeView
情况下,可以创建一个向服务器发出 put 请求的新模型(1)。
put 请求没问题,但是当我将新模型添加到集合中时,新模型会丢失服务器创建的 id。
我应该如何解决这个问题?
应该
1) POST 请求将 id 发送给客户端还是
2) 我必须从客户端发出另一个请求才能获取 id?
(1)
twitter-bootstrap - 以模态形式聚焦第一个字段
我正在使用来自 Twitter 的 Bootstrap 在 Marionette 应用程序中生成模态对话框。
我想知道在不使用花哨的 javascript 的情况下将第一个字段集中在模态表单中的最佳方法是什么。
这是我的代码:
backbone.js - Backbone Marionette - 切换视图时添加视觉效果
当我离开页面(关闭视图/布局)并在同一区域打开新页面时,是否有一种方便的方法来添加效果?(有点像淡入淡出效果)