Обновите свой 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>