Объект изменен, но массив не - PullRequest
0 голосов
/ 02 июля 2018

У меня есть массив объектов, которые отображаются в виде, и я хочу обновить объект в массиве, используя результаты http get call.

объект (элемент) обновляется, но кажется, что когда я отлаживаю его, это изменение в объекте отсутствует в массиве (this.myArray) и поэтому в представлении ничего не изменяется.

component.ts

myFunction() {
        this.myArray.forEach(item => {
                this._appSvc.modifyObject(item).subscribe(result => {
                    item = result;
                });
        });
    }

appSvs.ts

modifyObject(item): Observable<IItem>{
        return this._http.get(url).map(response => <IItem> response.json());
    }

component.html

<tbody>
    <tr *ngFor="let item of myArray | orderBy:{property: sortingAttribute, direction: direction}">
        <td>
            <input type="checkbox" name="select-{{item.id}}"
                   id="select-{{item.id}}"
                   [checked]="item.selected"
                   (change)="selectItem(item.id)"/>
        </td>
        <td>
            <span>{{item.name}}</span>
        </td>

        <td>
            <span>{{item.code}}</span>
        </td>
    </tr>
</tbody>

1 Ответ

0 голосов
/ 02 июля 2018

Измените ваш базовый массив в соответствии с индексом и новым элементом, который вы получаете от вашего сервиса.

myFunction() {
        this.myArray.forEach((item,index) => {
                this._appSvc.modifyObject(item).subscribe(result => {
                    this.myArray[index] = result;
                });
        });
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...