由于 TS 中的初始化,对象的字符串插值不起作用
String interpolation of an object is not working because of the initialisation in TS
我正在创建一个简单的应用程序,目前只有两个页面:
(1) 完整的股票清单。
(2)个股详情
当您点击股票列表中的特定股票时,您应该会转到另一个页面以阅读其信息。
这是我使用的服务:
export class StockService {
stock$ = new Subject();
public setStock(stock: Stock){
this.stock$.next(stock);
}
public getStock():Observable<any>{
return this.stock$.asObservable();
}
constructor() { }
}
在我的页面 (1) 我有以下 HTML:
<div class="container">
<app-stock-object
*ngFor="let stock of stocks"
[stock] = "stock"
(click)="setSelected(stock)"
routerLink="/stock-details">
</app-stock-object>
</div>
和下面的class在TS
export class StocksComponent implements OnInit {
@Input() stocks: Stock[] = Stock_data;
constructor(private stockService: StockService) { }
ngOnInit(): void {
}
public setSelected(stock: Stock){
this.stockService.setStock(stock);
}
}
我(尝试)检索股票的第二页:
export class StockDetailsComponent implements OnInit {
//Initilialising without a value ...
stock: any;
constructor(private stockService: StockService) { }
ngOnInit(): void {
this.stockService.getStock().subscribe(stock=>{
//The message below is shown with the selected stock.
console.log("stock -->",stock);
this.stock = stock;
})
}
}
和 HTML:
<p>the stock details are: {{stock?.name}}</p>
我认为这是因为我初始化股票时没有声明其类型的值。我是 Angular 的新手,因此在寻找解决此问题的最佳解决方案时遇到了问题。
提前致谢!
请尝试使用 BehaviorSubject 而不是 Subject,因为即使您以后订阅,Behavior Subject 也会为您提供最后发出的值。例如:-
stock$ = new BehaviorSubject(null);
我正在创建一个简单的应用程序,目前只有两个页面:
(1) 完整的股票清单。 (2)个股详情
当您点击股票列表中的特定股票时,您应该会转到另一个页面以阅读其信息。
这是我使用的服务:
export class StockService {
stock$ = new Subject();
public setStock(stock: Stock){
this.stock$.next(stock);
}
public getStock():Observable<any>{
return this.stock$.asObservable();
}
constructor() { }
}
在我的页面 (1) 我有以下 HTML:
<div class="container">
<app-stock-object
*ngFor="let stock of stocks"
[stock] = "stock"
(click)="setSelected(stock)"
routerLink="/stock-details">
</app-stock-object>
</div>
和下面的class在TS
export class StocksComponent implements OnInit {
@Input() stocks: Stock[] = Stock_data;
constructor(private stockService: StockService) { }
ngOnInit(): void {
}
public setSelected(stock: Stock){
this.stockService.setStock(stock);
}
}
我(尝试)检索股票的第二页:
export class StockDetailsComponent implements OnInit {
//Initilialising without a value ...
stock: any;
constructor(private stockService: StockService) { }
ngOnInit(): void {
this.stockService.getStock().subscribe(stock=>{
//The message below is shown with the selected stock.
console.log("stock -->",stock);
this.stock = stock;
})
}
}
和 HTML:
<p>the stock details are: {{stock?.name}}</p>
我认为这是因为我初始化股票时没有声明其类型的值。我是 Angular 的新手,因此在寻找解决此问题的最佳解决方案时遇到了问题。 提前致谢!
请尝试使用 BehaviorSubject 而不是 Subject,因为即使您以后订阅,Behavior Subject 也会为您提供最后发出的值。例如:-
stock$ = new BehaviorSubject(null);