Javascript 角度2绑定不工作
我有一个组件,它要求用户提供服务 父组件ts:Javascript 角度2绑定不工作,javascript,angular,binding,Javascript,Angular,Binding,我有一个组件,它要求用户提供服务 父组件ts: constructor(private router:Router, private route: ActivatedRoute, private userService: UserService){ super(); this.state = 0; userService.getById(params['id']).subscribe(this.setUser);
constructor(private router:Router, private route: ActivatedRoute, private userService: UserService){
super();
this.state = 0;
userService.getById(params['id']).subscribe(this.setUser);
}
setUser(user:UserModel){
this.user = user;
if (user) this.state = user.profile ? 2 : 1;
console.log("assinging well", user, state);
}
及其模板:
<div [ngSwitch]="state">
<div *ngSwitchCase=0>
<user-form (formSubmitted)="save($event)"></user-form>
</div>
<div *ngSwitchCase=1>
<profile-form [user]="user" (formSubmitted)="save($event)"></profile-form>
</div>
<div *ngSwitchCase=2>
<curriculum-form [user]="user" (formSubmitted)="save($event)"></curriculum-form>
</div>
</div>
提交表单时,console.log打印
undefined
当我将方法setUser
作为参数传递时,它似乎没有绑定到实例,在执行时,它没有访问属性值的权限。
我更改了
userService.getById(params['id']).subscribe(this.setUser)
foruserService.getById(params['id']).subscribe(this.setUser.bind(this))
成功了用双引号试试*ngSwitchCase=“0”
我第一次就是这样做的,然后我把它改成*ngSwitchCase=0
看看它是否有效
@Input() user:UserModel;
onSubmit() {
console.log(user);
let model = this.profileForm.value;
this.formSubmitted.emit(model);
}