Jor*_*cia 2 collections typescript aurelia
Aurelia文档指出,我们可以使用带有数组和其他可迭代数据类型(包括对象)的转发器,以及Map和Set等新的ES6标准.映射是重复的推荐方式.例如,如下所示:
<template>
<p repeat.for="[greeting, friend] of friends">${greeting}, ${friend.name}!</p>
</template>
Run Code Online (Sandbox Code Playgroud)
但是,具体而言,哪些类型的对象(数据结构,集合等)是可迭代/可重复的?......是什么让他们如此?
迭代typescript-collections包(https://www.npmjs.com/package/typescript-collections)中定义的集合似乎不起作用.它引发了一个错误,抱怨"收集价值'是不可重复的."
你可以使用aurelia迭代任何对象/数组/ set/map.
数组:
<template>
<p repeat.for="friend of friends">Hello, ${friend}!</p>
</template>
Run Code Online (Sandbox Code Playgroud)
范围:
<template>
<p repeat.for="i of 10">${10-i}</p>
<p>Blast off!</p>
</template>
Run Code Online (Sandbox Code Playgroud)
集:
<template>
<p repeat.for="friend of friends">Hello, ${friend}!</p>
</template>
export class RepeaterTemplate {
constructor() {
this.friends = new Set();
this.friends.add('Alice');
this.friends.add('Bob');
this.friends.add('Carol');
this.friends.add('Dana');
}
}
Run Code Online (Sandbox Code Playgroud)
地图:
<template>
<p repeat.for="[greeting, friend] of friends">${greeting}, ${friend.name}!</p>
</template>
export class RepeaterTemplate {
constructor() {
this.friends = new Map();
this.friends.set('Hello',
{ name : 'Alice' });
this.friends.set('Hola',
{ name : 'Bob' });
this.friends.set('Ni Hao',
{ name : 'Carol' });
this.friends.set('Molo',
{ name : 'Dana' });
}
}
Run Code Online (Sandbox Code Playgroud)
宾语:
<template>
<p repeat.for="greeting of friends | keys">${greeting}, ${friends[greeting].name}!</p>
</template>
export class RepeaterTemplate {
constructor() {
this.friends = {
'Hello': { name : 'Alice' },
'Hola': { name : 'Bob' },
'Ni Hao': { name : 'Carol' },
'Molo': { name : 'Dana' }
}
}
}
export class KeysValueConverter {
toView(obj) {
return Reflect.ownKeys(obj);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
194 次 |
| 最近记录: |