默认情况下,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()方法?
答案 0 :(得分:2)
1)是的,有两个导出,这样在导入辅助工具和作为把手帮助器之后,辅助工具可以用作其他JavaScript中的函数。
在其他JavaScript中:
import {
boundLoc
} from 'app/helpers/boundLoc';
boundloc(input);
并在模板中:
{{boundloc input}}
2)是的,您描述的行为是准确的。这只会导出boundHelper而不是其他地方的消费函数。你可以随时尝试POC。
但请注意,如果您尝试仅导出boundHelper,则可能无法生成测试。有关详细信息,请参阅this answer。