0

一直在寻找几个小时来解决这个问题,但没有任何解决方案。我正在尝试使用以下方法创建自定义 Ember 车把助手:

Ember.Handlebars.helper('highlight', function(value, options) {
    var escaped = Handlebars.Utils.escapeExpression(value);
    return new Ember.Handlebars.SafeString('<span class="highlight">' + escaped + '</span>');
});

但由于某种原因,我得到Uncaught TypeError: Ember.Handlebars.helper is not a function

我在 Ember 2 中读到他们有一种新方法:

// app/helpers/full-name.js
import Ember from "ember";

export default Ember.Helper.helper(function(params, hash) {
  return params.join(' ');
});

但是如果你使用的是 ember-cli,那么在没有 ember-cli 的情况下注册 helper 怎么样?

4

1 回答 1

1

在版本 2 中,他们删除了所有 Ember.Handlebars 接口调用。

使用新的助手:

Ember.Helper.helper(function(params) {

});

或扩展 Ember.Helper

Ember.Helper.extend({
  // This service name is only an example
  compute(params, hash) {
    return this.get('nameBuilder').build(params, hash.title);
  },
  rebuildName: Ember.observer('nameBuilder.isAnonymized', function() {
    this.recompute();
  })
});

理想情况下,您还应该使用 ember-cli,它更容易,因为我不确定在没有它的情况下如何编译和运行所有内容(这是一个非常好的构建系统,您可以使其与您想要使用的任何后端服务一起使用

ember serve --proxy

Ember CLI

于 2015-10-16T09:28:29.543 回答