从响应数据更新后,角度变量不变

时间:2019-07-29 10:10:11

标签: angular

变量值未在服务器响应上更新。

inception.component.ts

export class InterviewModeComponent implements OnInit {
interViewAwaits: Interview[] = [];
awaitLoading: boolean = true;

constructor(private translate: TranslateService,
            private interviewModeService: InterviewModeService) {
}

ngOnInit() {
    this.getAwaitInterviews();
}

getAwaitInterviews() {
    this.interviewModeService.getInterviews(1).subscribe(
        res => {
            console.log(res);
            this.interViewAwaits = res.data;
            this.awaitLoading = false;
        }, error => {
            console.log(error);
        }
    )
}

在inverview.component.html

<div class="kt-widget4" *ngIf="awaitLoading == true">
    <div class="kt-widget4__item">
        <div class="kt-spinner kt-spinner--sm kt-spinner--brand"></div>
    </div>
</div>
<div class="kt-widget4" *ngIf="awaitLoading == false">
    <div class="kt-widget4__item" *ngFor="let item of interViewAwaits">
         <div>{{item.first_name}}</div>
    </div>
</div>
<button (click)="getAwaitInterviews">Get</button>

在控制台日志中,我可以看到来自服务器的数据响应,但是将变量awaitLoading设置为false后,它永远不会变为false,但是如果我再次单击按钮以调用函数getAwaiInterviews(),它就可以工作。 发生什么事了?我不知道该怎么办。对不起我的英语不好。我是本地人。

1 个答案:

答案 0 :(得分:0)

我为您的示例here创建了一个Stackblitz,并且awailtLoading的值在那里被设置为false

此外,您的代码有一些更正:

<button (click)="getAwaitInterviews()">Get</button>