如何在Ember中创建一个Handlebars块帮助器来包装/操作内容
How do you create a Handlebars block helper in Ember that can wrap/manipulate content?
我想创建一个Handlebars块帮助器(在Ember应用程序中使用)来包装和转义内容。我以为它会相对简单,但我花了几个小时,却一无所获。我想要这个:
{{#code}}
<p>Hey!</p>
{{/code}}
变成这个:
<pre>
<code>
<p>Hey!</p>
</code>
</pre>
我能得到的最接近的是:
Em.Handlebars.registerHelper('code', function(options) {
options.fn()
})
但这只是直接输出块中的内容。我不能包装或操纵它。我错过了什么明显的东西吗?当然,这并不像看起来那么难。
自定义助手可能不得不依赖私有API,这在Ember中变化非常频繁-特别是现在引入了Glimmer渲染引擎。你可能会更好地使用Ember.Component
,使用{{yield}}
渲染html到一些隐藏的容器,然后使用didInsertElement
钩子手动操作DOM使用jQuery,例如
x-code.hbt
<div class="to-escape" style="display: none">{{yield}}</div>
<pre>
<code>
</code>
</pre>
x-code.js
App.XCodeComponent = Ember.Component.extend({
didInsertElement: function() {
var value = this.$('.to-escape').html();
this.$('code').text(value);
}
});
作为
{{#x-code}}
<p>Hey!</p>
{{/x-code}}
JsBin例子。
相关文章:
- 需要帮助设置json数组
- 如何将函数包装在函数中以避免代码重复
- JQuery需要帮助理解(i,el)
- 同位素库错误:未捕获错误无布局模式包装生产线8
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- 需要帮助谷歌地图方向面板在FancyBox中显示
- 为什么要包装每一个原型“;类“;JS中具有匿名函数的对象
- 我需要为我的朋友在这个项目上提供帮助
- 使用密码对话框Javascript请求帮助
- 在'物品包装'
- JavaScript计算帮助(乘以时间)
- 另一个if(!$scope.$$phase)$scope$apply()szenario-需要帮助才能通关
- Angular ng类需要帮助设置
- {{#each}}内部的Handlebar帮助程序
- php帮助-需要使用字符串回显php
- 如何在jQuery中包装两个元素的组
- 如何在包装功能中咕哝concat
- JavaScript,JQuery.需要帮助才能获得'name'从我的JSON中删除
- 在javascript中需要帮助包装函数并正确处理“this”
- 如何在Ember中创建一个Handlebars块帮助器来包装/操作内容