Aurelia插件和功能有什么区别?

时间:2015-12-11 18:42:52

标签: aurelia aurelia-framework

我正在尝试为我的应用注册几个插件但是我不确定应该怎么做。

我拥有的插件包括两个ValueConverters和我JSPM已安装的gooy/aurelia-animator-tinyanimate

这是我目前的实施:

资源\ index.ts / JS
export function configure(aurelia) {
  aurelia.globalResources('../from-now', '../date-format');
}

main.ts / js (这是应用程序的入口点)

import {Aurelia} from 'aurelia-framework';

export function configure(aurelia: Aurelia): void {
        aurelia.use
            .standardConfiguration()
            .developmentLogging()
            .plugin('resources/index', 'gooy/aurelia-animator-tinyanimate'); 

        aurelia.start().then(function () { return aurelia.setRoot('views/app'); });
}

转换器正在运行但是我没有看到要加载tinyanimate

基于以上所述,我有以下问题:

  1. 如何将gooy/aurelia-animator-tinyanimate移到index.js文件?
  2. plugin()feature()之间的区别是什么?

1 个答案:

答案 0 :(得分:14)

功能与插件基本相同,只是它们位于您自己的源代码树中。根据您的index.js文件,您需要加载以下功能:

aurelia.use.feature('resources`);

假设功能的index.js文件位于resources文件夹中。您可能希望将index.js文件更改为

export function configure(config) {
  config.globalResources('./from-now', './date-format');
}

并更新目录结构,将from-now.jsdate-format.js放在resources目录中。您不需要这样做,但从组织的角度来看,这是有道理的。更改参数名称只是为了更好地描述参数是什么(FrameworkConfiguration实例)。

要在gooy/aurelia-animator-tinyanimate文件中加载main.js,您需要从调用'resources/index'中删除plugin参数。然后Aurelia会为您正确加载插件。您的main.js文件最终应如下所示:

export function configure(aurelia: Aurelia): void {
        aurelia.use
            .standardConfiguration()
            .developmentLogging()
            .feature('resources')
            .plugin('gooy/aurelia-animator-tinyanimate'); 

        aurelia.start().then(function () { return aurelia.setRoot('views/app'); });
}

另请注意,您的main.ts中不需要import {Aurelia} from 'aurelia-framework';行。