mbu*_*ics 1 backbone.js marionette
我正在使用Marionette CollectionView来渲染项目列表ItemViews.每当添加一个新项目时,我想运行一个简短的淡入动画.但不是在最初呈现集合时(或重置集合).
在使用Marionette之前,我处理的事件reset和add事件略有不同,但我无法弄清楚如何在这里做到这一点.我查看了源代码,似乎addItemView负责添加子视图,两者addChildView(add在集合上触发时调用)和render(对于reset事件)调用此方法.
也许我错过了一些明显的东西.
这是一种方法:
在您的CompositeView声明中包含以下功能:
onBeforeRender: function(){
this.onBeforeItemAdded = function(){};
},
onRender: function(){
this.onBeforeItemAdded = myAnimation;
}
Run Code Online (Sandbox Code Playgroud)
这类似于我在Marionette上的书中提出的解决方案(https://leanpub.com/marionette-gentle-introduction/)
工作原理:Marionette在呈现整个集合之前触发"before:render",因此您可以将该onBeforeItemAdded函数设置为什么都不做.渲染集合后,将该函数设置为为新项目视图设置动画.
由于每次集合视图添加项目视图时它也会触发"before:item:added",您可以定义一个onBeforeItemAdded在触发该事件时自动调用的函数.由于triggerMethod,这种匹配发生了.
此解决方案应该可以解决您的问题,而无需在模型上添加标记.
| 归档时间: |
|
| 查看次数: |
1615 次 |
| 最近记录: |