Угловой компонент не обновляется после вызова API - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть выпадающий компонент, который принимает модель как [input].

на родительском устройстве, которое у меня есть:

    public ngOnInit(): void {

        this.initializeDropdown();       
    }

private initializeDropdown(): void {

    this.viewModel.dropdownItems = {
        defaultItem: {
            display: 
            value: undefined
        },
        items: []
    };

    const promise = this.someService.get("SOMEURL");

    promise.then(res => {
        if (Array.isArray(res)) {

            res.map((item) => {

                this.viewModel.dropdownItems.items.push(
                    {
                        display: item.display,
                        value: item.value
                    });
                }
            );
        }
    });
}

Проблема в том, что не обновляется дочерний компонент.Так что выпадающий список не обновляется.Я вижу, что viewModel инициализируется.

Я связал его одним способом,(Не знаю о вызове API, хотя не знаю, сделаю ли я это где-нибудь еще)

1 Ответ

0 голосов
/ 22 февраля 2019

Если вы используете changeDetection: ChangeDetectionStrategy.OnPush, сохраните ChangeDetectorRef и наберите markForCheck, как показано ниже.

 constructor(private changeDetectorRef: ChangeDetectorRef) {}

 const promise = this.someService.get("SOMEURL");
    promise.then(res => {
        if (Array.isArray(res)) {

            res.map((item) => {

                this.viewModel.dropdownItems.items.push(
                    {
                        display: item.display,
                        value: item.value
                    });
                });
            this.changeDetectorRef.markForCheck();
        }
    });
...