到目前为止,我一直在使用绑定(bind)助手在我的博客文章中注入(inject) Google DFP 广告。由于在 Ember 2.0 中删除了所有 Handlebars API,从 Ember 2.0 开始我可以使用什么来代替?
import Ember from "ember";
export default Ember.Handlebars.makeBoundHelper(function(value, options) {
var parsedHtml = Ember.$('<div />').html(value)
// Push the ads after the divs have been rendered
Ember.run.schedule('afterRender', function() {
googletag.cmd.push(function() { googletag.display('div-gpt-ad-111111111-0'); });
})
}
return parsedHtml.html()
});
最佳答案
您将使用 Ember.Helper.helper语法:
import Ember from 'ember';
const { Helper: { helper }, run: { schedule }, $ } = Ember;
export function helperName(params, hash) {
let parsedHtml = $('<div />').html(params[0])
// Push the ads after the divs have been rendered
schedule('afterRender', function() {
googletag.cmd.push(function() { googletag.display('div-gpt-ad-111111111-0'); });
})
}
return parsedHtml.html();
}
export default helper(helperName);
Params 是您在模板中传递给助手的所有值的数组,例如 {{my-helper val1 val2 val3}}
params[0]
是 val1
等等,散列是一个对象,包含您在助手 {{my-helper val1 val2 property1=myPropValue}}
上设置的所有属性,您将访问它通过 hash.property1
。
关于javascript - Ember 2.0 中的 makeBoundHelper 替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31988475/