Angular: возможность автоматического обнаружения изменений и просмотра обновлений - PullRequest
0 голосов
/ 26 мая 2018

У меня есть таблица, в которой я отображаю значения объекта Json, и у меня есть модель, в которой я могу добавлять новые данные, а позже я отображаю эти значения в таблице.

<tbody>
    <tr *ngFor="let row of icDataToDisplay.icdata; let icIndex=index">
       <td [ngClass]="editMode && clickedRowIndex === icIndex? 'edit-enabled': ''">{{row.Device_Type}}</td>
       <td [ngClass]="editMode && clickedRowIndex === icIndex? 'edit-enabled-category': ''">{{row.Device_Model}}</td>
       <td [ngClass]="editMode && clickedRowIndex === icIndex? 'enabled-recommendation': ''">
            <span *ngIf="editMode && clickedRowIndex !== icIndex">{{row.Recommended_Software_Version}}</span>
            <span *ngIf="!editMode && clickedRowIndex !== icIndex">{{row.Recommended_Software_Version}}</span>
            <input type="text" class="enabled-hw" [(ngModel)]="row.Recommended_Software_Version" (ngModelChange)="onChange($event, 'Recommended_Software_Version')"
                                    *ngIf="editMode && clickedRowIndex === icIndex" />
       </td>


    </tr>
</tbody>

Компонент

public addSoftwareIcData() {
        this.configManagementService.postIcData(this.clickedProductFamily,
            '', this.icDataObject, 'Software').
            subscribe((response) => {
                if (response.status === 200) {
                    this.closeAddIcModal();
                    this.myData = 'IC data added successfully.';
                    this.icDataList = response;
                    this.ref.markForCheck();
                } else if (response.status === 304) {
                    this.info = response.message;
                }
            });
    }

В модальном режиме это вызов API POST, и ответ будет содержать вновь добавленные данные вместе со старыми данными.Я переназначаю данные API-интерфейса icDataToDisplay.icdata для рендеринга.

Проблема в том, что представление не обновляется, даже если значение icDataToDisplay.icdata изменилось.Почему Angular не выполняет автоматическое обнаружение изменений?Я пытался с this.ref.markForCheck ();изменить детектор Angular, но он не работает.Пожалуйста, предложите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...