Tout d'abord, installez le package SemanticUI. Avec JSPM exécutez cette ligne pour l'installer à partir de Github:
Il installera également jQuery en tant que dépendance. Après cela, vous pourrez importer les plugins et les styles jQuery de SemantinUI dans votre view-model. Voir le modèle peut être quelque chose comme ça alors:
import {semanticUI} from 'semantic-ui';
import states from './states-list';
export class States {
constructor() {
this.states = states; // or load states with http-client, etc.
}
attached() {
$(this.statesSelect).dropdown().on('change', e => {
this.stateSelected = e.target.value;
});
}
}
et vous pouvez rendre modèle avec les états liste:
<template>
<p>Selected: ${stateSelected}</p>
<select ref="statesSelect" value.bind="stateSelected" class="ui search dropdown">
<option value="">State</option>
<option value="${state.code}"
model.bind="state.name"
repeat.for="state of states">${state.name}</option>
</select>
</template>
Couple de notes. Vous devez fournir l'attribut ref
pour référencer HTMLElement à partir de view-model, de cette façon vous n'avez pas besoin de coder en dur les sélecteurs CSS dans VM.
Apparemment, Aurelia ne récupère pas la valeur correcte automatiquement après la sélection personnalisée des modifications de la liste déroulante sémantique. Dans ce cas, vous pouvez simplement mettre à jour le modèle manuellement avec l'événement onchange.
Démo:http://plnkr.co/edit/vJcR7n?p=preview
J'ai écrit un blog sur la création d'éléments personnalisés pour emballer des cadres css ici: http://davismj.me/blog/semantic-custom-element/ –