使用可绑定属性创建自定义元素
使用可绑定属性创建自定义元素非常简单。如果你想创建一个接受插件可以使用的一个或多个值的元素,@bindable
装饰器和语法就是你要找的。
下面,我们创建一个自定义元素,接受一系列水果并显示它们。
示例: my-element.js
import {bindable} from 'aurelia-framework';
const validFruits = [
'Apple',
'Banana',
'Orange',
'Pineapple',
'Grapes',
'Peach',
'Plum',
'Dates',
'Strawberries'
];
export class FruitCustomElement {
@bindable fruits = [];
fruitsChanged(newVal, oldVal) {
if (newVal) {
newVal.filter(fruit => {
return validFruits.indexOf(fruit) >= 0;
});
}
}
}
<template>
<ul if.bind="fruits">
<li repeat.for="fruit of fruits">${fruit}</li>
</ul>
</template>
使用它:
export class MyViewModel {
myFruits = [];
attached() {
this.myFruits = ['Apple', 'Banana', 'Orange', 'Pineapple', 'Grapes', 'Peach'];
}
}
<template>
<require from="./my-element"></require>
<fruit fruits.bind="myFruits"></fruit>
</template>