2017-01-05 5 views
1

Я попытался поместить содержимое HTML в тег. В теге div отображается страница. Но тег скрипта не работает. Выглядит этот код ...Угловой 2 поместить HTML в тег

getRequestToAssignPage (param: string) : any { 
    return this.$http.get(param) 
     .map((res: Response) => { 
      this.status = res; 
      return res.text() 
     }) 
     .toPromise() 
     .then(response => this.response = response) 
     .catch(error => this.status = error); 

} 

Это способ сделать запрос с получить новую страницу, и преобразовать его в текст. Затем я помещаю текст в тег div. Нравится это.

<div [innerHTML]="response"></div> 

это работает! страница отображается, но теги скрипта не работают, и он отображает как текст. После того, как страница была нагрузка, ниже содержание принадлежат тексту

JQuery (документ) .ready (функция() {JQuery ('# фильтр-форма') yiiActiveForm ([], []);. JQuery (» # id-vendors-list '). yiiGridView ({"filterUrl": "/ vendors/vendor/index", "filterSelector": "# w0-filters input, # w0-filters select"});});

Как я могу это исправить?

ответ

1

У вас, вероятно, проблема с безопасным HTML.

Try реализации этой трубы:

import { Injectable, Pipe } from '@angular/core'; 
import { SafeResourceUrl, DomSanitizer } from '@angular/platform-browser'; 

@Pipe({ 
    name: 'safe' 
}) 
@Injectable() 
export class SafePipe { 
    constructor(private sanitizer: DomSanitizer) {} 
    transform(url) { 
    return this.sanitizer.bypassSecurityTrustResourceUrl(url); 
} 
} 

А потом:

<div [innerHTML]="response | safe"></div> 
Смежные вопросы