为什么生成ember cli helper导出函数和帮助器?

时间:2015-02-12 15:37:44

标签: javascript ember.js ember-cli

默认情况下,ember-cli生成的帮助器如下所示:

import Ember from 'ember';

export function boundLoc(input) {
  return input;
}

export default Ember.Handlebars.makeBoundHelper(boundLoc);

我有两个问题可以更好地理解这段代码。

1)为什么有两个出口?第一个导出是否允许其他JavaScript文件导入和使用帮助程序,而第二个导出实际上是将其作为Handlebars帮助程序注册?

2)其次,如果代码如下:

import Ember from 'ember';

export default Ember.Handlebars.makeBoundHelper(function boundLoc(input) {
  return input;
});

是否会将其导出为Handlebars模板帮助程序,但是不会使导入此帮助程序的其他JavaScript文件可以访问boundLoc()方法?

1 个答案:

答案 0 :(得分:2)

1)是的,有两个导出,这样在导入辅助工具和作为把手帮助器之后,辅助工具可以用作其他JavaScript中的函数。

在其他JavaScript中:

import {
  boundLoc
} from 'app/helpers/boundLoc';

boundloc(input);

并在模板中:

{{boundloc input}}

2)是的,您描述的行为是准确的。这只会导出boundHelper而不是其他地方的消费函数。你可以随时尝试POC。

但请注意,如果您尝试仅导出boundHelper,则可能无法生成测试。有关详细信息,请参阅this answer