Javascript 角度4“;更改“;侦听器只触发一次
我有一个选择下拉列表,我从中绘制数据,根据选择进行更改。它将在第一次加载时正常启动,但在我重新加载或重定向之前不会再次更改Javascript 角度4“;更改“;侦听器只触发一次,javascript,angular,addeventlistener,lifecycle,Javascript,Angular,Addeventlistener,Lifecycle,我有一个选择下拉列表,我从中绘制数据,根据选择进行更改。它将在第一次加载时正常启动,但在我重新加载或重定向之前不会再次更改 getLogs(){ document.getElementById("placeSelect").addEventListener('change', (e:any)=>{ this.placeService.getPlace(e.target.value).subscribe((e:any)=>{ this.p
getLogs(){
document.getElementById("placeSelect").addEventListener('change', (e:any)=>{
this.placeService.getPlace(e.target.value).subscribe((e:any)=>{
this.personService.person(e.data.place.person.id).subscribe((e:any) => {
this.logs = e.data.person.logs
})
})
})
}
我称之为组件的“ngOnInit”,也许这就是问题所在?任何想法都会有帮助。这可能会对你有所帮助
在Module.ts的导入中添加此代码
import { FormsModule } from '@angular/forms';
imports: [FormsModule]
myModel(e: Event) {
console.log(e);
}
import { userInfo } from '../../component1';
内部组件。ts
import { FormsModule } from '@angular/forms';
imports: [FormsModule]
myModel(e: Event) {
console.log(e);
}
import { userInfo } from '../../component1';
在Component.html中
<select (ngModelChange)="myModel($event)" [ngModel]="mymodel">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">2</option>
</select>
1.
2.
2.
谢谢你的建议,但我还是设法解决了这个问题。最大的障碍是select在另一个组件中(我很抱歉没有提到),因此我必须将select信息导出到我的组件中,在该组件中显示信息
组件2.ts
import { FormsModule } from '@angular/forms';
imports: [FormsModule]
myModel(e: Event) {
console.log(e);
}
import { userInfo } from '../../component1';
然后设置一个延迟,以便在两个组件完全加载后启动侦听。在我之前的版本中,它似乎已经开火了
ngOnInit() {
if(userInfo.place){
this.getLogsfromPlace()
}
setTimeout(()=>{
this.startupUserInfo = userInfo
document.getElementById("header").addEventListener('change', (e:any)=>{
this._placeService.getPlace(userInfo.place).subscribe((e:any)=>{
this._personService.person(e.data.place.person.id).subscribe((e:any) => {
this.logs = e.data.person.logs
})
})
}) }, 3000);
}
非常感谢 忘记事件侦听器。在模板中,放置
select(change)=“onChangeHandler($event)”…>
,然后在组件中使用方法onChangeHandler(event)
查看此链接将有助于我想我应该澄清一下。我道歉。但选择和显示数据的位置在两个单独的组件上。