В чем разница между плагином Aurelia и функцией?

Я пытаюсь зарегистрировать пару плагинов для своего приложения, но не знаю, как это сделать.

Плагины, которые у меня есть, включают два ValueConverters и gooy/aurelia-animator-tinyanimate, которые я установил через JSPM .

Вот моя текущая реализация:

ресурсы\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()?

person MaYaN    schedule 11.12.2015    source источник


Ответы (1)


Функции в основном такие же, как и у плагина, за исключением того, что они находятся в вашем собственном дереве исходного кода. На основе вашего файла index.js вам нужно будет загрузить свою функцию следующим образом:

aurelia.use.feature('resources`);

Предположим, что файл index.js компонента находится в папке resources. Вы можете изменить свой файл index.js на

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

и обновите структуру каталогов, чтобы поместить from-now.js и date-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'); });
}

Также обратите внимание, что нет необходимости в строке import {Aurelia} from 'aurelia-framework'; в файле main.ts.

person Ashley Grant    schedule 11.12.2015
comment
Пробовал выше и получил 404 ошибки при поиске представления .html для каждого класса в ресурсах. Необходимо добавить декоратор import {noView} from 'aurelia-framework'; @noView, чтобы он не искал html-представление. - person Jim B; 13.12.2016