Tak, jest to możliwe!
Zrobiłem jQueryUI Tabs dla was przykładem:
tabs.html
<template>
<ul>
<li repeat.for="tab of tabs">
<a href="${'#' + $parent.id + '-' + $index}">${tab.title}</a>
</li>
</ul>
<div repeat.for="tab of tabs" id="${$parent.id + '-' + $index}">
<p>${tab.text}</p>
</div>
</template>
Jak widać, mam skopiowane tylko HTML szablonowe z kart jQueryUI składnik i utworzył właściwość bindable tabs
, która jest tablicą takich obiektów: [{title: "", text: ""}]
.
tabs.js
import {bindable, inject} from 'aurelia-framework';
import $ from 'jquery';
import {tabs} from 'jquery-ui';
@inject(Element)
export class Tab {
@bindable tabs = null;
constructor(el) {
this.id = el.id;
}
attached() {
$(`#${this.id}`).tabs();
}
}
Kod jest dość czytelna: Mam jQuery importowane z mojego pliku config.js, a mój jquery-ui stamtąd też (tylko wypustki elementów, więc staje się jaśniejszy). Następnie wstrzyknąłem DOMElement do mojej klasy, aby uzyskać identyfikator. Stworzyłem moją właściwość bindable tabs
. W moim konstruktorze otrzymuję identyfikator DOMElement i zapełniam moją właściwość id. I na koniec, na dołączonym zdarzeniu (gdy wszystkie powiązania są zakończone), mam obiekt jQuery z mojego identyfikatora i wywołałem metodę tabs()
, aby przekształcić szablon w komponent Tabs. Całkiem proste, uh?
W moim pliku config.js, dodałem te dwa wiersze:
"jquery": "github:components/[email protected]",
"jquery-ui": "github:components/[email protected]",
a następnie można użyć komponentu Tabs gdziekolwiek chcesz, nazywając go w jakikolwiek inny szablon HTML projektu:
to jest to!
można zobaczyć na przykładzie pracy tutaj: http://plnkr.co/edit/ESxZA2jTlN7f6aiq1ixG?p=preview
PS: Dzięki za tym plnkr, Sylvian, Użyłem twoje widelec kopalni.
Proszę trzymać. To jest dobre pytanie i nie mogłem znaleźć dobrego zapisu, jak to zrobić. W międzyczasie przejrzyj raport o błędzie tutaj: https://github.com/aurelia/framework/issues/138. Jest to dobry przykład tego, jak ktoś sobie z tym poradził za pomocą wtyczki datepicker. –
Napisałem blog, który może Cię zainteresować integracją bibliotek stron trzecich w Aurelia: http://davismj.me/blog/aurelia-drag-and-drop –
Napisałem blog o tworzeniu niestandardowych elementów do zawijania css frameworks tutaj: http://davismj.me/blog/semantic-custom-element/ –