为什么 generated ember cli helper 导出函数和 helper?
Why does generated ember cli helper export function and helper?
默认情况下,由 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) 是的,有两个导出,因此助手可以在导入后用作其他 JavaScript 中的函数,也可以用作车把助手。
其他JavaScript:
import {
boundLoc
} from 'app/helpers/boundLoc';
boundloc(input);
并在模板中:
{{boundloc input}}
2) 是的,您描述的行为是准确的。那只会导出一个 boundHelper 而不是在其他地方使用的功能。您可以随时尝试 POC。
但是请注意,如果您尝试仅导出 boundHelper,则生成的测试可能会遇到问题。有关详细信息,请参阅 this answer。
默认情况下,由 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) 是的,有两个导出,因此助手可以在导入后用作其他 JavaScript 中的函数,也可以用作车把助手。
其他JavaScript:
import {
boundLoc
} from 'app/helpers/boundLoc';
boundloc(input);
并在模板中:
{{boundloc input}}
2) 是的,您描述的行为是准确的。那只会导出一个 boundHelper 而不是在其他地方使用的功能。您可以随时尝试 POC。
但是请注意,如果您尝试仅导出 boundHelper,则生成的测试可能会遇到问题。有关详细信息,请参阅 this answer。