ember.js - 如何访问自定义 Ember Handlebars 助手的 block 内容?

标签 ember.js handlebars.js

我正在尝试编写一个自定义 Ember Handlebars 助手,它将返回一些 HTML,但我无法访问助手中的 block 内容。

模板:

{{#link}}
This is the block content
{{/link}}

助手:

Ember.Handlebars.registerHelper('link', function (options) {
  var result = '<a href="http://example.com/">'
              + options.fn(this)
              + '</a>';
  return new Handlebars.SafeString(result);
});

我期望的结果是:<a href="http://example.com/">This is the block content</a>

相反,我得到:This is the block content <a href="http://example.com/">undefined</a>

fiddle :http://jsfiddle.net/NQKvy/676/

我做错了什么?

最佳答案

我不确定目前是否可以在 Ember.Handlebars 中轻松使用 block 助手。但是,您可以使用“常规”Handlebars 助手,如下所示:

{{link "This is the block content" url="http://www.example.com"}}

助手:

Ember.Handlebars.registerHelper('link', function (value, options) {
    var result = '<a href="'+options.hash.url+'">'
                  + value
                  + '</a>';
    return new Handlebars.SafeString(result);
});

参见this jsFiddle .

关于ember.js - 如何访问自定义 Ember Handlebars 助手的 block 内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21703132/

相关文章:

ember.js - Ember.JS中的动态计算属性已弃用?

arrays - 如何在 Handlebars 循环数组中使用 lang var?

Ember.js - 如果 URL 直接命中,则处理路由时出错

ember.js - Ember 数据混合 find()、query()、findAll()

javascript - 使用 ES6 模块和 CoffeeScript 的首选方式

javascript - 通过 handlebars.js 中的动态属性遍历对象

javascript - 如何访问 "generated application controller"?在 Ember 中

javascript - Ember JS - 搜索多个模型?

javascript - Handlebars 中模板的条件渲染

javascript - 如何在客户端上呈现来自 HTTP GET 的数据(使用 Handlebars)