Ember 虚拟测试应用程序的助手

Ember helper for Dummy testing app

我想创建一个简单的 Handlebars 助手来输出绑定变量的 JSON 表示(文件:app/helpers/json.js):

import Ember from 'ember';
export function json(input) {
  return JSON.stringify(input);
}
export default Ember.Handlebars.makeBoundHelper(json);

然后我会在 Dummy 应用程序的 application.hbs 中使用这个助手,如下所示:

{{json myArray}}

不幸的是,当我这样做时,出现以下错误:

Uncaught Error: Handlebars error: Could not find property 'json' on object

我想解析器出了点问题……我怀疑这与我在插件中使用 Dummy 应用有关。我确实尝试将助手移动到 /tests/dummy/app/helpers,希望这会修复它,但它似乎对错误消息没有影响。

自定义助手需要 have a dash in their name to be loaded automatically:

Limiting automatically-loaded helpers to those that contain dashes is an explicit decision made by Ember. It helps disambiguate properties from helpers, and helps mitigate the performance hit of helper resolution for all bindings.

那里有关于如何在需要时加载非破折号助手的说明。对于您的示例,您需要将其添加到 app.js:

import jsonHelper from './helpers/json';

Ember.Handlebars.registerBoundHelper('json', jsonHelper);