提问者:小点点

Ember 2.0中的makeBoundHelper替代方案


到目前为止,我一直在使用绑定的助手在我的博客文章中注入Google DFP广告。由于Ember 2.0中已删除所有Handlebar 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()
});

共1个答案

匿名用户

您将使用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]isval1等等,哈希是一个对象,包含您在帮助程序{{my-helper val1 val2属性1=myPropValue}}上设置的所有属性,您可以通过hash. properties ty1访问它。