Angular 服务时的角度变化
因此,我有一个课程如下: item.model.tsAngular 服务时的角度变化,angular,Angular,因此,我有一个课程如下: item.model.ts import { Injectable } from '@angular/core'; @Injectable() export class itemView { id: any; } 然后,在一个组件文件中有一个更改ID的函数: 组件A.ts constructor(public itemID: itemView) {}; getItemID(number){ //"<div (swipe)="getItemID(
import { Injectable } from '@angular/core';
@Injectable()
export class itemView {
id: any;
}
然后,在一个组件文件中有一个更改ID的函数:
组件A.ts
constructor(public itemID: itemView) {};
getItemID(number){ //"<div (swipe)="getItemID(number)"></div>
this.itemID.id = this.selection[number];// ex: value change to "2"
}
但我没有得到任何结果。关于我做错了什么有什么建议吗?您应该让
itemView
负责更改,并通知组件那里发生了什么。ngOnChanges是一个生命周期挂钩,当@Input属性更改时触发。因此,如果您没有通过输入指令将id从组件a传递到组件b,那么钩子就不会触发。Camaron是对的,您需要一个rxjs主题来将更改传输到正在侦听的组件。这里有一篇关于这种组件通信的好文章()谢谢大家。我会读这篇文章。非常感谢。您应该让itemView
负责更改,并通知组件那里发生了什么。ngOnChanges是一个生命周期挂钩,当@Input属性更改时触发。因此,如果您没有通过输入指令将id从组件a传递到组件b,那么钩子就不会触发。Camaron是对的,您需要一个rxjs主题来将更改传输到正在侦听的组件。这里有一篇关于这种组件通信的好文章()谢谢大家。我会读这篇文章。非常感谢。
import { SimpleChanges } from '@angular/core';
ngOnChanges(changes: SimpleChanges) {
if (changes[this.itemID.id]) {
console.log("It changed");
}
}