angular - 在订阅中从 succ 更新的 Angular 字段不会传播到呈现的视图
问题描述
我有这样的标记。
<a href="{{testValue}}">
Clicky here
</a>
在ngOnInit()中,我执行以下代码。
this.someService.someObservable()
.subscribe(suc => {
console.log(suc.resId);
this.testValue = suc.resId;
console.log(this.testValue);
});
控制台中的输出结果两次都告诉我,例如se134。因此,我的结论是,我已经从服务中正确获得了值,并且我正在按预期更新该字段。
页面上的预期行为是原始值将更改为从订阅回调中获得的值。那不会发生。
我尝试搜索 Angular 的绑定系统,了解到这是一个非常简单的问题(我的意思是,在这里显示异步加载的值并不是什么大问题)。没有发现任何让我印象深刻的东西与我已经拥有的东西有偏差。
我什至尝试了不同的括号组合,例如[href]="testValue"等等。当然,正如预期的那样,这并没有带来任何改善。
我错过了什么?
解决方案
试试这个代码
<a [href]="testValue">Clicky here</a>
但是,您的代码中存在问题。您不会取消订阅您的服务。您可以使用async
管道,它会自动为您取消订阅
控制器:
testValue: Observable<string>;
ngOnInit() {
this.testValue = this.someService.someObservable().map(suc => suc.resId);
}
模板:
<a [href]="testValue | async">Clicky here</a>
推荐阅读
- javascript - NodeJS 哈希函数
- r - 热图和平衡平均值
- ruby-on-rails - 在保存记录的同时在 Rails 中创建唯一 ID
- r - charToDate(x) 中的错误:在 R 中按年份执行聚合时
- javascript - 如何在画布上的不寻常形状上绘制网格
- bash - 命令执行后关闭 gnome_terminal 实例 (rpi)
- ansible - 如何获取 ansible playbook 运行更改的任务总数?
- c++ - Opencv中高斯的GIMP差异
- jquery - 如何在所有匹配的 jQuery 对象上使用 html2canvas
- django - 在模板中将多个字典变量作为一个发送