如何创建一个新的组件(视图),它根据 Dart 写的模型包含其他组件?
项(超类):
一个包含组件列表的简单组件/模型:
现在我想根据项目列表创建app.html视图。除了使用NgSwitch之外,是否有更好的解决方案?
项(超类):
@Component(selector: 'item')
@View(template: '<div/>')
class Item {}
ImageItem和ButtonItem(子类):
@Component(selector: 'image-item')
@View(template: '''
<div>
<img src="http://localhost:8082/images/test.png"/>
</div>''')
class ImageItem extends Item {
String selector = 'image-item';
ImageItem() : super() {}
}
@Component(selector: 'button-item')
@View(template: '''
<div>
<button type="button"/>
</div>''')
class ButtonItem extends Item {
String selector = 'button-item';
ButtonItem() : super() {}
}
一个包含组件列表的简单组件/模型:
@Component(selector: 'app')
@View(
templateUrl: 'app.html',
directives: const [Item, ImageItem, ButtonItem, NgFor, NgSwitch, NgSwitchDefault, NgSwitchWhen])
class App {
List<Item> items = [new ButtonItem(), new ImageItem(), new ImageItem()];
}
现在我想根据项目列表创建app.html视图。除了使用NgSwitch之外,是否有更好的解决方案?
<div>
<ul>
<li *ng-for="#item of items; #i = index" >
<div [ng-switch]="item[i].selector">
<template ng-switch-when="button-item">
<button-item>{{item.selector}}</button-item>
</template>
<template ng-switch-when="image-item">
<image-item>{{item.selector}}</image-item>
</template>
</div>
</li>
</ul>
</div>
--> does not work, don't know why