Типскрипт ответа выберите данные - PullRequest
1 голос
/ 19 июня 2020

HMy html отображается undefined (undefined), я вижу данные в отладчике, поэтому я не уверен, правильно ли я использую выбранные данные? HTML Просмотр

<div *ngIf="publishItemsWarningMessage" class="text-danger">
    {{publishItemsWarningMessage}}
    <ul>
        <li *ngFor="let detail of publishItemsWarningMessageDetails">
            {{detail}}
        </li>
    </ul>
</div>

Машинопись

if (response.UnpublishedRelatedTemplates.length > 0) {
    this.publishItemsWarningMessageDetails = Enumerable
        .From(response.UnpublishedRelatedTemplates)
        .Select(UnpublishedRelatedTemplates => response.UnpublishedRelatedTemplates.RelatedTemplateId + " (" + response.UnpublishedRelatedTemplates.TemplateId + ")")
        .ToArray();
}

отладка

enter image description here

UI display undefined (undefined)

введите описание изображения здесь

1 Ответ

2 голосов
/ 22 июня 2020

Обновите свой Typescript код, как показано ниже. Замените response.UnpublishedRelatedTemplates на UnpublishedRelatedTemplates внутри .Select(...)

if (response.UnpublishedRelatedTemplates.length > 0) {
    this.publishItemsWarningMessageDetails = Enumerable
        .From(response.UnpublishedRelatedTemplates)
        .Select(UnpublishedRelatedTemplates => UnpublishedRelatedTemplates.RelatedTemplateId + " (" + UnpublishedRelatedTemplates.TemplateId + ")")
        .ToArray();
}

Объяснение Вы получаете undefined, потому что внутри Select вы используете response.UnpublishedRelatedTemplates.RelatedTemplateId, а response.UnpublishedRelatedTemplates - array, поэтому RelatedTemplateId не будет. Вместо этого вы можете использовать index [index], чтобы получить значение, подобное response.UnpublishedRelatedTemplates[index].RelatedTemplateId.

Но поскольку вы уже Enumerating в своем массиве, UnpublishedRelatedTemplates будет содержать значение response.UnpublishedRelatedTemplates[index]. Так что вы можете просто заменить его.

Попробуйте ниже

let response = {
  UnpublishedRelatedTemplates: [{
    RelatedTemplateId: 'TMRelated2',
    TemplateId: 'TMRelated1'
  }, {
    RelatedTemplateId: 'TMDummy2',
    TemplateId: 'TMDummy1'
  }]
};

if (response.UnpublishedRelatedTemplates.length > 0) {
  let publishItemsWarningMessageDetails = Enumerable
    .From(response.UnpublishedRelatedTemplates)
    .Select(UnpublishedRelatedTemplates => UnpublishedRelatedTemplates.RelatedTemplateId + " (" + UnpublishedRelatedTemplates.TemplateId + ")")
    .ToArray();

  console.log(publishItemsWarningMessageDetails);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/linq.js/2.2.0.2/linq.min.js" integrity="sha256-dq1fzSor46Oc+U/DjuE2hKKN0FfvbVx+CW5GBn1mhiQ=" crossorigin="anonymous"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...