Angular-dart:从属性自动转换Component的@input字段

时间:2017-11-25 08:03:04

标签: dart angular-dart

假设

<component list-attribute="a b c" bool-attribute></component>

具有这样的组件状态的最佳方式是:

@Component(...
class Component{
  List<String> listAttribute; // Should automatically contain [a,b,c]
  bool boolAttribute; // Should automatically contain true

1 个答案:

答案 0 :(得分:2)

没有任何Ang Ang自动转换值。

这种绑定

 list-attribute="a b c" 

将始终传递一个字符串。

可能的解决方案

首先,属性需要注释

@Input()List<String> listAttribute;

明确传递一个列表

 [list-attribute]="['a', 'b', 'c']" 

创建一个执行转换的setter

List<String> _listAttribute
@Input() set listAttribute(String value) {
  _listAttribute = value?.split(' ');
}

list-attribute="a b c" 

[list-attribute]="'a b c'"

或自定义管道进行拆分 像

[list-attribute]="a b c | split"