Handlebars.registerHelper是否支持异步功能?

时间:2013-09-19 20:37:27

标签: javascript asynchronous handlebars.js helpers

是否可以创建返回异步结果的Handlebars Helper函数? 也许Handlebars支持某种双向绑定? 我想使用来自JSONP请求的JSON数据,因此jQuery.ajax也不支持async:false,但是这与我正在寻找的不完全相同。

1 个答案:

答案 0 :(得分:1)

你可以在助手中调用你想要的任何功能,但这对你没有任何帮助。问题是Handlebars帮助器使用字符串,而其他人将这些字符串转换为DOM元素。但是,当您的AJAX调用完成时,在根据Handlebars生成的字符串构建的DOM元素与您可以在帮助程序内成功回调中捕获的任何上下文之间不会有任何有用的连接。

我认为你能做的最好的事情就是把它分成两部分:

  1. 辅助函数可以生成具有所需结构的HTML,您可能会为结构添加classdata-*属性的组合。
  2. 在之后作用于HTML 的一些JavaScript已被DOM化。这个JavaScript可以查找来自 1 classdata-*属性的内容,启动相应的AJAX调用,然后在成功处理程序中修补DOM。
  3. 也许没那么有用,但在使用基于文本的模板系统时,这可能是最好的。