如果我创建一个帮助器,那么它就可以直接在HBS文件中使用它。 但我可以在控制器或组件的JS文件中使用它吗?
答案 0 :(得分:4)
是。您可以。假设你有format-css帮助器,那么你可以像导入它一样
formatCss(['argument1'])
您可以在js文件create table entity (
EntityId int auto_increment primary key,
Name varchar(255) not null,
someInteger int not null,
anotherInteger int not null,
unique (name, someInteger, anotherInteger)
);
create table entityValues (
entityValueId int auto_increment primary key,
EntityId int,
timestamp datetime,
value ?, -- I don't know what the type is
foreign key (EntityId) references entities(EntityId)
);
答案 1 :(得分:0)
在Ember 1.x中,而不是:
export default Ember.Handlebars.makeBoundHelper(function(someArg){
//do something
});
使用命名导出单独导出该功能:
//app_name/helpers/some-helper.js
export function someFn(someArg) {
//do something
}
export default Ember.Handlebars.makeBoundHelper(someFn);
这样,帮助器被正确定义为在模板中使用,但在任何js文件中,您导入命名的辅助函数(而不是默认导出):
import { someFn } from 'app_name/helpers/some-helper';
someFn()
在2.16中,从您看到的文档中,他们建议进行此类导出(使用不同的机制创建帮助程序):
import { helper } from "@ember/component/helper"
export function formatCurrency([value, ...rest]) {
let dollars = Math.floor(value / 100);
let cents = value % 100;
let sign = '$';
if (cents.toString().length === 1) { cents = '0' + cents; }
return `${sign}${dollars}.${cents}`;
}
export default helper(formatCurrency);