在我的Angular应用程序的html中,我可以编写此代码,它的确会从变量中提取“标题”并在屏幕上显示出来:
下面从我的component.html 中可以正常工作:
<input matInput value="{{ (app$ | async).myTitle.match('title: "(.*)"')[1] }}" placeholder="My Title" #title>
我想重复使用一些代码,并将其插入到
component.ts
中我试图重构将代码移至component.ts,但出现错误:
所以我尝试了我的component.ts
getTitle(): Observable<string> {
return this.app$.map(state => {
return state.myTitle.match('title: "(.*)"')[1];
}
);
}
然后尝试将html简化为:
value="{{ getTitle | async }}
但是然后我得到错误:
我可能会丢失如何在
getTitle()
中访问可观察对象并返回字段的可观察对象 最佳答案
您正在将函数对象getTitle
传递到异步管道,而不是其调用getTitle()
。
value="{{ getTitle | async }}
代替
value="{{ getTitle() | async }}
这就是为什么错误消息将
InvalidPipeArgument: function
表示为“给定函数对该管道无效的参数”的原因。