angular - 自定义元素(聚合物)属性绑定到 Angular 9 中的 RxJS Observable
问题描述
我有一个 Angular 9 应用程序,其中 Angular 组件属性绑定到 RxJS 可观察对象。在这里,我试图用 Polymer 自定义元素(纸张输入)替换 Angular 组件。
我的观察是什么? 我无法将自定义元素属性与 RxJS observables 绑定,而我可以使用 Angular 组件属性。
如何重现? 为了展示我所面临的情况,我将带有自定义元素(纸张输入)的 stackblitz 示例绑定到一个可观察对象。
app.component.html
<paper-input [label]="price$ | async" ></paper-input>
app.component.ts
import { Observable } from 'rxjs';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
})
export class AppComponent {
price: Observable<string>;
constructor() {
this.price = Observable.of("230$");
}
}
完整代码: https ://stackblitz.com/edit/angular-examples-mu72vs
期望我能够将纸张输入(Polymer)的标签属性绑定到Observable,并且一旦有更改就会反映到自定义元素属性。实际上,我没有看到反映到标签属性的更改,它是空的。
在这里,我假设 observable 订阅将作为 AsyncPipe 的一部分使用 while 绑定发生。但是自定义元素属性不会发生这种情况。
使用 RxJS Observables 实现自定义元素属性绑定的最佳方法是什么?
问候巴桑特
解决方案
现在它正在工作,我的 Angular 代码有一个小错误。基本上是我声明和使用 observable 的方式。我们应该使用“$”符号将其指示为可观察变量。
即通过以下更改,它工作正常。
export class AppComponent {
price$: Observable<string>;
constructor() {
this.price$ = Observable.of("230$");
}
}
我怀疑带有 CustomELement 的 aync 管道,但是使用带有 Polymer Custom ELements 的 async 管道没有问题。
您可以在这里找到工作示例 @ https://stackblitz.com/edit/angular-examples-udy8qe
谢谢
巴桑特
推荐阅读
- oracle - 如何在 Oracle 中将一个值与 2 个值进行比较
- c# - 当我在 S3 服务器上上传时,如何在 C# 中向 HttpRequestMessage.Headers 添加 content-md5 标头?
- python-3.x - 如何在不使用 Tensorboard 的情况下在 Tensorflow 中绘制损失曲线?
- javascript - 为什么我的模态返回网站后无法工作?
- wordpress - Visual Composer 编辑器块标签链接 css
- powershell - 如何在 Sitecore Powershell Extensions 中获取常规链接字段属性
- python - Python 从命令行运行运行 3.6 版,而在我的文件中它运行 3.4 版
- api-key - API 密钥是一种授权方式还是身份验证方式?
- java - 无效的字符串值:'\ xD0...." for the column ...."。utf8 字符集尝试使用
- android - 如何在 libgdx 的核心或桌面应用程序中添加资源文件夹?