问题标签 [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.
backbone.js - 骨干木偶复合视图未触发事件
这是我用来创建树结构的代码复合视图片段。
树呈现完美,但事件未绑定或未触发。永远不会调用 Show 方法。我正在使用 Backbone.Marionette v0.9.1
marionette - Backbone.Marionette CollectionView/CompositeView 渲染
这个问题是这个相关问题的延伸。
听从 Derick 的建议,我的数据现在有了正确的形状。即我有一个对象的集合Department
,每个对象都有一个Users
.
CollectionView
再次按照 Derick 的建议,我正在尝试渲染CompositeView
a
我的收藏视图看起来像这样
我的Composite View
样子是这样的:
如果我不覆盖 appendHtml 方法,那么视图会呈现,但它只会呈现Department
模型的属性。它不会呈现users
集合。
当我重写中的appendHtml
方法时,CollectionView
我可以传递一个模型(一个Department
对象)和一个集合,users
但它们中的一个或两个似乎是错误的对象类型,因为该Marionette bindTo
函数抱怨该对象没有“on”方法。
我究竟做错了什么?
backbone.js - 使用 Backbone Marionette 从弹出模式添加到集合
我对 Backbone 和 Marionette 还很陌生,很难让我的观点交流。
我有一个显示项目列表的复合视图。要将新项目添加到列表中,我有一个弹出模式,它在与复合视图分开的新项目视图中打开。
我不确定这是不是最好的方法,但在模式中,我创建了一个包含所有项目的集合的新实例,并将新项目添加到该集合中。这个新项目显示在原始复合视图中,但仅在我刷新页面之后。
我似乎无法弄清楚如何让复合视图监听添加事件并在添加新模型后渲染它。
我在正确的轨道上吗?如果没有,我应该怎么做才能从模式中添加到集合中?
javascript - Marionettte/Backbone 应用程序中没有方法错误
我收到“没有方法‘结果’backbone.marionette.js:402 错误”。这是跟踪:
...
在主干.marionette.js 中:
我的调用代码:
如果有人有任何线索可能是导致类型错误的问题 - 很高兴得到想法。我快到了,我可以说。catalogList 集合似乎很好 - 从服务器填充。我知道这可能很难破译,但也许有人对如何解决问题有一些想法。
javascript - 使用backbone.marionette 和requireJs 的Web 应用程序的循环依赖项
我处于以下情况。
我正在使用 requireJs 加载模块,我不想使用全局变量。
main.js 负责加载路由器。
然后路由器加载应用程序,应用程序加载几个子应用程序。
一切都初始化后,子应用程序需要router
制作router.navigate
.
这里的架构:
然后我遇到了循环依赖问题,因此 subApp 中的路由器将未定义。
重组我的代码或解决此问题的最佳方法是什么?有没有这方面的例子?
javascript - Routing.navigate vs document.location.hash
我已经使用backbone.marionette
. 当Marionette.ItemView
我从 a 触发事件时document.location.hash
:
1.a) 它改变了 URL 1.b) 它触发了 appRoutes
Routing.navigate
如果我从同一个地方触发:
2.a) 它按预期更改 URL 2.b) 它不会触发 appRoutes。
知道为什么会发生 2.b 吗?问题可能出在哪里?
谢谢。
javascript - Marionette.CompositeView,如何将参数传递给 Marionette.ItemView
我想从 Marionette.ItemView 访问 app.vent。
也许一个选项可能是将参数 ( app.vent
) 传递给Marionette.ItemView
from Marionette.CompositeView
。
这是我的代码:
有任何想法吗?
PS:
我无法从 itemView 访问应用程序,因为存在循环依赖问题。
backbone.js - Backbone(可能是 Marionette)应用程序中的多个路由器
我目前已经为我的 Backbone 应用程序(非Marionette)定义了多个路由器。
如您所见,我正在使用变量进行导航。所以我必须知道要调用哪个路由器。是否可以以某种方式将代码组织到单独的类中,但是当我想导航时,只需调用appRouter.navigate "something"
而不需要知道它是哪个路由器?Marionette 建议不要使用大型路由器,但没有推荐的方式/示例
javascript - 绑定到 ItemView 更改事件
Marionette.ItemView
当相应的模型发生ItemView
变化时,我想重新渲染使用的列表。
关于激活此任务的最佳方法的任何想法?
PS:
如果我在中尝试以下代码(1)Marionette.ItemView
,
当我保存模型时,我会收到以下错误(2)。
(1)
(2)
javascript - Marionette.CompositeView 和 Marionette.ItemView 之间的事件
我有两个模块itemView.js
和ListView.js
.
当我获取数据时,一切正常。
问题是关于item view
(1)当我改变相应的模型时。
a) ListView.js
(2) 显示模型closed
值等于false
(3) 的所有对象
b) closeTask
(1) 中的动作将模型的值
从closed: false
closed: true
c) 当 b) 发生时没有任何变化,
但是如果我重新加载页面,我会得到正确的结果(不显示 closed
值等于的模型)。true
我应该如何解决这个问题?
(1)
(2)
(3)
PS:
当我获取集合时,服务器只给我关闭属性等于 false 的模型。