Javascript 角度2绑定不工作

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);

我有一个组件,它要求用户提供服务

父组件ts:

    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)
for
userService.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);
    }