问题 Ember.js实用工具类


我是Ember.js和Javascript的新手。我在用 烬-CLI 创建一个可以使用DateUtil类来执行某些日期操作的应用程序。我注意到ember-cli有一个实用程序生成器,用于在app / utils / date-util.js中生成以下样板代码:

export default function dateUtil() {};

我想知道如何编写一个实用程序,以便我可以在我的应用程序中使用它。具体来说,作为一个例子,在控制器中:

export default Ember.ObjectController.extend({
  startDate: dateUtil.thisMonday()
});

thisMonday()将使用moment.js返回本周一的日期:

moment({hour:0}).day(1);

作为dateUtil的一部分,还有许多其他类似于thisMonday()的东西。


8407
2017-07-30 22:15


起源



答案:


您只需要在每个想要使用它的控制器中导入导出实用程序功能的ES6模块,如下所示:

import dateUtil from 'app/utils/date-util';

export default Ember.ObjectController.extend({
  startDate: dateUtil().thisMonday()
});

请注意,路径不一定 app/utils/... 但是,你必须更换 app 使用您在最初生成应用时使用的应用名称。您可以通过查看来验证这是什么 app/app.js,并寻找价值 modulePrefix 中 Ember.Application.extend()


13
2017-07-30 23:44



您可以通过指向相对位置使路径变得不那么脆弱: import dateUtil from '../utils/date-util'; - tinystride


答案:


您只需要在每个想要使用它的控制器中导入导出实用程序功能的ES6模块,如下所示:

import dateUtil from 'app/utils/date-util';

export default Ember.ObjectController.extend({
  startDate: dateUtil().thisMonday()
});

请注意,路径不一定 app/utils/... 但是,你必须更换 app 使用您在最初生成应用时使用的应用名称。您可以通过查看来验证这是什么 app/app.js,并寻找价值 modulePrefix 中 Ember.Application.extend()


13
2017-07-30 23:44



您可以通过指向相对位置使路径变得不那么脆弱: import dateUtil from '../utils/date-util'; - tinystride


只需使用ES6模块语法导入您的类。

import dateUtil from 'app/utils/date-util.js';

参考文献:


3
2017-07-31 00:11