如何解决Angular 提供者:根据@Input() 参数动态提供值
export const FormatDate = new InjectionToken('FormatDate');
...
@Component({
selector: '...',templateUrl: '...',styleUrls: ['...'],providers: [{ provide: FormatDate,useValue: 'MM.yyyy' }]
})
export class DatePicker {
@Input() format: string
...
}
我想根据输入的 'format' 参数动态提供 'FormatDate'。如果 format === 'short' 那么 useValue: 'MM.yy'。如果 format === 'long' 那么 useValue: 'MM.yyyy'。这可能吗?
解决方法
是的,你可以使用管道来做到这一点。创建一个管道,转换方法应该是这样的(伪代码可能会帮助你创建一个流):
exPipe.ts
transform(format: any) {
return format === 'long' ? fetch value form store or anywhere(MM.yyyy)
: fetch value form store or anywhere(MM.yy) || (MM.yyyy).slice(0,4) // just slice it
}
在模板中你可以这样做(只是一个例子):
<div> {{format | exPipe }}</div>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。