什么'这是一种在预渲染的HTML上构建Marionette视图的干净方法

What's a clean way to construct Marionette views over pre-rendered HTML?

本文关键字:HTML 构建 Marionette 方法 视图 一种 什么      更新时间:2023-09-26

我一次又一次地遇到这个问题,但我并不总是知道如何解决它。例如,我从服务器加载了一个页面。该页面有一个实体列表(CollectionViewCompositeView中的Backbone.Marionette.ItemView的集合。如何在不破坏初始HTML的情况下,用Backbone/Marionette管理的对象干净地替换预先呈现的HTML?

问题是,否则我必须等到页面加载完成,然后用数据构建视图,在页面最终真正准备好之前先创建一个暂停,然后再创建一个闪烁。

我会这样做:
-加载预呈现列表,该列表位于id为#container的容器中
-在该id#容器上创建提线木偶区域
-在该容器中显示"marionette ized"视图

参见小提琴:http://jsfiddle.net/Cardiff/D6hXZ/

请注意,html在5秒钟后更新为提线木偶版本:

// Create a region
var rm = new Marionette.RegionManager();
rm.addRegion("container", "#container");
// Show the collectionView with a delay, replacing the pre-rendered html
_.delay(function() {
    console.log('updating list with marionette views!');
    rm.get('container').show(movieCompViewInstance);
}, 5000);

你看不到任何闪烁,只是文本颜色的变化,表明提线木偶版本是活动的。此外,在点击删除按钮之前,它不会做任何事情,在加载之后,它们会起作用。