Я создал пользовательский атрибут для управления жизненным циклом элемента materilaize select
:материализовать-CSS JavaScript функции не найден в проекте Aurelia
import {customAttribute} from 'aurelia-templating';
import {inject} from 'aurelia-dependency-injection';
@customAttribute('material-select')
@inject(Element)
export class MaterialSelect {
element: Element = null;
constructor(element) {
this.element = element;
}
attached() {
console.log("ATTACHED");
console.log(`The attached element is: ${this.element}`);
$(this.element).material_select();
}
detached() {
console.log("DETACHED");
$(this.element).material_select('destroy');
}
}
Кроме того, я установил материализовать-CSS с:
jspm install npm:materialize-css
... и я импортировал materilialize в main.ts
с:
import materialize from 'materialize-css';
Но всякий раз, когда элемент с атрибутом material-select
пытается загрузить Я получаю этот консольный вывод:
ATTACHED
The attached element is: [object HTMLSelectElement]
Uncaught TypeError: $(...).material_select is not a function
Как получить материализовать-CSS JavaScript функции, чтобы быть признанным в пределах Aurelia?
В материализовать расслоение плотной компоненты (особенно выберите) являются сложно интегрировать с привязкой данных. Есть примеры [здесь] (http://jdanyow.github.io/aurelia-breeze-northwind). Они могут использовать некоторые рефакторинги, но должны дать вам некоторые идеи. –
Northwind Github [repo] (https://github.com/jdanyow/aurelia-breeze-northwind) выглядит очень похоже на то, что я сделал: materialize - зависимость jspm, импортированная в 'main.js', а затем используемый. Я вижу только 2 отличия: Northwind использует более старую версию materilize, а Northwind - не проект машинописного текста. Хотя я не понимаю, почему эти различия могут вызвать проблему. – asemahle
Я написал блог об интеграции сторонних библиотек в aurelia, которые могут вас заинтересовать. Смотрите: http://davismj.me/blog/aurelia-drag-and-drop/ –