骨干.木偶-附加itemview到不同的容器取决于容器的高度
Backbone.Marionette - append itemViews to different container depending on the height of containers
我想达到的目标
我想把帖子渲染成一个时间轴。时间轴由两列组成,我将帖子附加到这两列。我想要能够附加一个帖子到较短的列。新文章需要添加到第一列。
我实际上有一个可以解决这个问题的工作代码,但我觉得它没有达到应有的效率。默认情况下,木偶将新创建的元素附加到documentFragment
缓冲区,这应该会加快渲染速度(更少的布局更改等)。此外,我需要获取帖子后,我渲染时间线复合视图(因为两列需要附加到DOM有高度)。
What i tried
这个控制器负责在app的某个区域显示视图:
class APP.Controllers.Companies extends Marionette.Controller
initialize: ->
@vent = _.extend {}, Backbone.Events
show: ->
posts = APP.request "posts:collection"
directoriesPromise = APP.request "directories:all"
postsView = new APP.Views.Posts.Layout
vent: @vent
collection: posts
postsView.on "render", -> posts.fetch()
@_wait [directoriesPromise], (directories) =>
APP.execute "show:main", postsView
请注意,我正在抓取帖子后,我已经呈现复合视图,以确保集合最初是空的,列附加到DOM。否则,可能会在渲染视图之前缓存并获取posts集合,这会破坏getShortestColumn(见下文)函数。
_wait是jQuery的包装器。等待函数。
这是Timeline类的一部分,它扩展了木偶。CompositeView:
appendHtml: (compositeView, itemView, index) ->
@getShortestColumn().append itemView.el
getShortestColumn: ->
minHeight = Number.MAX_VALUE
shortest = null
@ui.columns.each ->
if $(this).outerHeight() < minHeight
shortest = $(this)
minHeight = $(this).outerHeight()
shortest
我想基本上保持当前的功能,但利用缓冲在木偶可用。我还希望能够在我显示视图之前获取帖子(就像我与目录一样),以防止超时或连接缓慢阻碍用户体验。
似乎我不清楚我在问什么,所以这里的问题是:我怎么做到这一点?
欢迎提出任何建议或解决方案。Thanksalot .
编辑:我忘了说我用的是木偶1.8.6,不幸的是我不能更新。
您可以重写show方法,在那里进行获取,然后在获取完成/失败后调用基本的show方法,而不是在渲染事件中进行获取(无论如何,调用的频率比您预期的要高)。
或者更好,你有一个"控制器"负责获取数据,然后把它交给视图,而不是视图自己获取任何东西。
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- ExtJS——在展开/折叠时调整面板高度
- 分析高度属性时出现意外值{{specs.height}}.index.html
- 单击页面上的链接后高度发生变化
- 不加载宽度和高度的角度pintura
- 查找元素高度,包括边距
- 如何自动调整标签的高度以适应内容
- Javascript高度问题
- 使用JavaScript根据窗口/视口的高度动态调整图像大小
- jquery移动对齐按钮取决于内容大小
- 如何计算每个元素's的高度,并将这些值用作函数中的变量
- 如果宽度是百分比,如何设置以px为单位的图像高度
- 使jQueryUI自动完成高度取决于父级
- 如何使用jQuery将所有HTML元素包装在DIV中,具体取决于这些HTML元素的总高度
- 滚动到元素's偏移量取决于页眉高度
- 骨干.木偶-附加itemview到不同的容器取决于容器的高度
- 动画的持续时间取决于元素的高度
- 设置自动高度,取决于文本区域中有多少列,但显然它增加了空白空间
- 如何设置父元素的高度,取决于所选元素的高度
- Javascript固定位置导航间歇性地工作,具体取决于窗口高度/滚动量