支持使用Backbone.js视图加载异步模板?

时间:2013-12-04 10:41:02

标签: javascript templates backbone.js

我是Backbone.js的新手,并试图将我的头脑包裹在整个事物中。我们已经有了一个内部使用的自定义模板系统。我的问题是我们的系统需要异步回调才能正常运行。

我已经在其他一些地方读到Backbone.View将采取jQ延迟(虽然我不确定它消耗的确切位置),但是我想知道是否可能这样做。

有没有办法用Backbone.View填充通过回调加载的模板内容?

1 个答案:

答案 0 :(得分:1)

Spot,Backbone.View渲染的逻辑完全由您控制。

默认情况下,默认情况下,默认情况下创建一个空的分离DOM元素(在视图中指定tagName,默认情况下为'div',在视图中指定className,默认情况下为') 。然后,只要您愿意,您可以使用HTML内容(或子视图中的其他分离节点)填充此分离的DOM元素,和/或将其附加到DOM以使其显示。

这对您来说意味着您的View中的模板键只是一个方便的占位符来放置您想要渲染的HTML,但您不必使用它,如果您在其中放入一个值,它在您使用它来更新View的el(由您的视图创建的DOM元素)的HTML之前,它将不会执行任何操作。因此,如果这个键包含一个jQ延迟,它将起作用,因为该键在它准备好时将包含模板......但它不会神奇地渲染任何东西。

一种方法(在众多方法中)是将defer的resolve回调(done)绑定到调用视图渲染的函数(通常是如何调用更新DOM的函数,但它只是一个约定,你可以调用它_renderASmallPart模板只是一个部分)并且可能使用参数来更新视图的模板键。如果您在回调中使用正确的上下文时遇到问题,请不要忘记有用的_.bindAll!