angular - 两个组件之间的角度共享数据
问题描述
我正在尝试将一个服务的值共享到另一个组件,但值结果显示为未定义
Injectable()
export class TestService {
url:string;
someExample(){
this.url="Hello";
}
@Component({
selector: 'app-example',
templateUrl: './example.component.html',
styleUrls: ['./example.component.css']
})
export class ExampleComponent {
constructor(private test: TestService,
) { }
doTest(){
console.log("CheckingValue"+ this.test.url)
}
}
如何设置 url 值以便我可以在另一个组件上接收?我是角度新手,我可以在控制台中看到 this.test.url 值显示为未定义
解决方案
使用 Observable 订阅更改:
import { Observable, of } from 'rxjs';
Injectable()
export class TestService {
url:string;
someExample(): Observable<string>{
return of (this.url="Hello");
}
并在组件中获取/订阅它:
this.testService.someExample().subscribe(result => {
console.log(result);
});
如果服务中的值发生变化,您将在组件中获得更新的值。
推荐阅读
- c# - 肥皂服务抛出“响应提前结束,至少
需要额外的字节。”(IOException) - xamarin - 如何在 Xamarin 中创建无限 ListView?
- python - 使用多个字符串动态填充字典
- javascript - React - 从 json 动态渲染组件
- python - Python代码为跨账户的变量创建潜在客户值,账户的最后一个值为空
- javascript - 我的 chrome 扩展内容脚本与从 popup.js 发送的相同函数相乘
- java - 使用 xtext 和 maven 解决构建问题
- kubernetes - 无法将 .netcore 应用程序作为 kubernetes cronjob 运行
- oracle - Docker 上的 Oracle :: ORA-12162: TNS:net 服务名称指定错误
- javascript - 我想在 sendinf API 请求中的对象下使用基于条件的对象