Ответ 1
Вы можете использовать outerHTML
<ul class="list-group" >
<li *ngFor="let course of courses | async" [outerHtml]="course.tile_content"></li>
</ul>
Я хочу, чтобы у меня был элемент ul, а затем в моем json. У меня есть html, содержащий элементы списка (li) на разных сайтах социальных сетей. Когда я помещаю ngfor в элементы списка, создается несколько ul для каждой из выведенных json-записей.. возможно ли просто вывести каждый из li как простой html и не обернуть их в элемент
небольшой образец моего json
{
"courses": [{
"tile_id": 0,
"tile_content": "<li class=\"grid-item horiz-double blog-tile\" data-item-id=\"0\">yrdy<\/li>"
}],
}
небольшой образец моего сервиса angular - это отлично работает и выводит json, но, возможно, им не хватает какой-либо настройки форматирования
public getCourses() {
this._http.get(this.apiUrl).map(response => response.json()).subscribe(data => {
// console.log( data.courses );
this._dataStore.courses = data.courses;
//console.log(this._coursesObserverXX);
this._coursesObserverXX.next(this._dataStore.courses);
}, error => console.log('Could not load courses.'));
}
и мой html
<ul class="list-group" *ngFor="#course of courses | async">
{{ course.tile_content }}
</ul>
цель состоит в том, чтобы не было вывода ngfor для оболочки, а также для отображения вывода как обычного html, а не открытого текста, поскольку он, кажется, выходит
Вы можете использовать outerHTML
<ul class="list-group" >
<li *ngFor="let course of courses | async" [outerHtml]="course.tile_content"></li>
</ul>
В некоторых случаях может оказаться полезным <ng-container>
. Например (не для этого конкретного вопроса):
<ng-container *ngFor="let item of items; let i = index">
...
</ng-container>
В DOM его содержимое отображается как обычно, но сам тег отображается как комментарий HTML.
Из документация:
Элементы группового брата с
<ng-container>
[...]
<ng-container>
для спасенияAngular
<ng-container>
- это элемент группировки, который не мешает стилям или макету, потому что Angular не помещает его в DOM.
Не уверен, что вы понимаете, чего хотите/пытаетесь сделать, но вы можете сделать что-то вроде этого:
<ul class="list-group">
<li *ngFor="#course of courses | async">
{{ course.tile_content }}
</li>
</ul>
Обратите внимание, что расширенный синтаксис также можно использовать:
<template ngFor [ngForOf]="courses | async" #course>
{{ course.tile_content }}
</template>
(тег шаблона не будет добавлен в HTML)
Edit
Это работает:
<ul *ngFor="#elt of elements | async" [innerHTML]="elt.title">
</ul>
Смотрите этот plunkr: https://plnkr.co/edit/VJWV9Kfh15O4KO8NLNP3?p=preview