异步加载车把模板

2024-04-06

我正在尝试编写一个函数,该函数将为我提供一个已编译的车把模板(我将所有模板都放在单独的文件中),使用 ajax 调用来获取模板并编译它以供使用,但我需要使用承诺,以便我可以实际使用它。

function getTemplate(name){
    $.get('/'+name+'.hbs').success(function(src){
       var template = Handlebars.compile(src);
       //can't return the template here.
    });
}

我如何通过承诺来做到这一点,这样我就可以做类似的事情:

$("a").click(function(e){
    getTemplate('form').done(function(template){
       $("body").append(template({
               name: "My Name"
           })
       );
    });
});

Chovy,我看到你已经接受了答案,但你可能有兴趣知道getTemplate可以通过链接.then()而不是.success(),几乎可以像问题中那样写:

function getTemplate(name) {
    return $.get('/'+name+'.hbs').then(function(src) {
       return Handlebars.compile(src);
    });
}

或者,采用 charlietfl 的想法传入数据并返回一个完全组合的片段的 Promise :

function getTemplate(name, data) {
    return $.get('/'+name+'.hbs').then(function(src) {
       return Handlebars.compile(src)(data);
    });
}

nett 效果与 charlietfl 的版本相同getTemplate but .then()使得没有必要显式创建 Deferred。因此代码更加紧凑。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

异步加载车把模板 的相关文章

随机推荐

  • 尝试在 Inno Setup 代码中检测锁定文件时出现“未知标识符‘FileOpen’”

    我正在尝试使用FileOpen在 Inno Setup 代码中 但是 Inno Setup 编译器不断向我抛出以下错误 未知标识符 文件打开 这是示例代码 function IsFileLocked pathFile string Bool
  • 错误“空话回复”

    我尝试连接对话流 and 在 Google 上的操作 所以我创建了一些意图 连接了服务 添加了显式和隐式调用等 但是当我在模拟器中尝试机器人时https console actions google com project projectI
  • 否定自调用函数? !function ($) { ... }(window.jQuery); [复制]

    这个问题在这里已经有答案了 可能的重复 函数前面的感叹号有什么作用 https stackoverflow com questions 3755606 what does the exclamation mark do before the
  • C语言中如何将数组存入数组?

    假设我有一个固定大小为 3 的数组 用于存储颜色的 RGB 例子 color 3 0 0 255 我还有另一个数组 arrayOfColors 存储许多颜色 例子 arrayOfColors 0 0 255 0 0 0 255 255 25
  • Starlette 的 url_for 不会在 Nginx 后面创建带有 https 方案的链接(通过 uvicorn)

    我已经尝试了一切 斯塔莱特 routes Mount static StaticFiles directory parent fs decoration fs static name static Route Route Uvicorn f
  • 在单周期数据路径中加载半字和加载字节

    有人询问如何在单周期数据路径中实现加载字节而无需更改数据存储器 解决方案如下 替代文本 http img214 imageshack us img214 7107 99897101 jpg http img214 imageshack us
  • 在 Bootstrap 网格中动态更改列数

    我正在尝试为桌面浏览器设计一个布局 并为平板电脑浏览器设计其他布局 我希望在桌面浏览器中看到 3 9 列 3 列用于侧边栏 9 列用于内容 以及平板电脑中的 12 列 仅内容 我不需要平板电脑中的侧边栏 因此我需要在这种情况下显示液体内容
  • 拥有带有路径的地图如何将其与给定路径进行比较?

    我们有到字符串对的升压路径映射 例如名称 位置 绝对位置路径a lausr myfolder 我们得到了一些位置a lausr myfolder mysubfolder myfile 如何找到哪个地图位置最适合给定的网址 例如 我们有一张地
  • 嵌套列表中元素的 Python SUMPRODUCT

    我有两个嵌套列表 a 1 2 3 2 4 2 b 5 5 5 1 1 1 我想将每组元素相乘并求和得到 c 30 8 哪个结果来自 1 5 2 5 3 5 2 1 4 1 2 1 我尝试过这样做 c sum x y for x y in z
  • Play 重新加载应用程序时出现奇怪的 MongoError(使用 ReactiveMongo)

    通常 当 Play 在代码更改后重新加载应用程序时 我会收到以下错误 MongoError 无法到达节点集 请检查您的网络 连接性 MongoDB 日志如下所示 2016 09 06T18 51 22 609 0200 I NETWORK
  • 使用 Python 了解 Open CV 中的椭圆参数

    我正在尝试使用 Open CV 绘制圆弧 使用 cv2 ellipse 函数 我尝试阅读相同的文档 但我发现它非常令人困惑 在我的例子中它是一个圆弧 所以axes x和axes y是相同的 即半径 我的轴应该是什么 我应该在哪个方向计算开始
  • 嵌套 Linq Min() 使 Visual Studio 崩溃

    我有一段代码使 Visual Studio 2008 IDE 运行速度非常慢 消耗大量内存 最终导致其崩溃 我怀疑 VS 达到了操作系统内存限制 以下代码不是我的真实应用程序代码 但它模拟了问题 本质上 我试图使用 LINQ 找到树中的最小
  • linux下限制R内存使用

    我们在 Linux 集群环境中运行 R 当用户无意中使用 R 进程占用所有内存时 头节点会出现几次挂起 linux下有没有办法限制R内存使用 我不想建议全局 ulimit 但这可能是唯一的出路 There s unix rlimit as
  • $.getJSON 解析器错误尝试调用 API

    我正在尝试使用 Clipped API http clipped me api html http clipped me api html 返回 JSON 但遇到了一些麻烦 我正在使用 getJSON 在 Chrome 的 JS 控制台中我
  • 是否有任何编程语言支持定义原始数据类型的约束?

    昨晚我在想编程语言可以有一个功能 我们应该能够限制分配给原始数据类型的值 例如 我应该可以说我的 int 类型变量只能具有 0 到 100 之间的值 int lt 0 100 gt progress 然后 这将在所有情况下充当普通整数 除非
  • 在Android中使用OpenCV将NV21转换为RGB

    我正在尝试在 Android 中使用 OpenCV 因此 我首先通过并排放置两个 SurfaceView 来测试 OpenCV 其中一个SurfaceView用于预览相机的输出 输出格式显然是NV21 另一个SurfaceView通过Ope
  • 如何在 Jersey 客户端中发送 DELETE 请求中包含的数据?

    我在 Jersey 2 x 中有以下服务器端代码 Path store remove from group DELETE Consumes MediaType APPLICATION FORM URLENCODED Produces Med
  • 自定义会员资格提供商*没有*数据库?

    我一直在寻找有关 MVC 4 中成员资格提供程序更改的各种 SO 问题 博客文章等 虽然我喜欢其中的许多更改和简化 尤其是开箱即用的外部登录 支持 我还无法找到一件看似简单的事情 如何使用使用其他数据源的自定义成员 角色提供者覆盖成员资格
  • 如何从 viewcontainer 角度删除特定视图

    在下面的示例中 https stackblitz com edit angular 1acvol https stackblitz com edit angular 1acvol 我使用创建了多个视图TemplateRef并将它们附加到同一
  • 异步加载车把模板

    我正在尝试编写一个函数 该函数将为我提供一个已编译的车把模板 我将所有模板都放在单独的文件中 使用 ajax 调用来获取模板并编译它以供使用 但我需要使用承诺 以便我可以实际使用它 function getTemplate name get