将组件的@Input传递给可观察对象是一种不好的做法吗?
例如: 父级模板将具有
<profile-edit [items$]="profileFacade.items$">
和ProfileEditComponent将具有这样的变量:
@Input items$: Observable<ProfileItem[]>
并使用|异步管道来解散模板中可观察值 ProfileEditComponent的
答案 0 :(得分:2)
对于rolli <- function(ix) {
data.frame(coef = rollapplyr(ix, width = 12, function(ix) {
coef(lm(y ~ x, data = dat, subset = ix))[2]
}, by = 1), Date = dt$Date[ix][1], Stkcd = dt$Stkcd[ix][1])
}
do.call("rbind", by(1:nrow(dt), dat[c("Date", "Stkcd")], rolli)
管道来说,这是一个很好的解决方案,但是请注意更改检测机制。因为从角度async
的有界属性不会改变,所以如果将更改检测策略设置为[items]
,则可能不会相应刷新视图。然后,您将需要手动订阅此可观察的输入,并在每次更改触发时自行检测更改。
答案 1 :(得分:2)
我认为这不是好习惯。 Angular为您提供了async
管道,这正是您想要的。
使用async
管道时:
更少的代码,因为您不需要先订阅可观察的内容。
该组件不需要了解Observable
类,并且像这样更愚蠢
所以我认为:
<profile-edit [items]="profileFacade.items$ | async">
@Input items: ProfileItem[]
比这更干净,更好:
<profile-edit [items]="profileFacade.items$">`
@Input items: Observable<ProfileItem[]>`
仅凭我的猜测,我不是专家。