Можно ли использовать абсолютный или внешний URL-адрес в компонентах Angular 4/5/6? [Дубликат]

Если вы сталкиваетесь с этим при отладке в Visual Studio, убедитесь, что путь сборки проекта указывает на локальный диск или выполните эти шаги , чтобы предоставить разрешения для сетевой папки.

2
задан rich green 14 February 2017 в 21:30
поделиться

4 ответа

Использование внешнего URL-адреса в templateURL не поддерживается (возможно, потому, что оно подвергает вас рискам безопасности). В качестве обходного пути вы можете использовать шаблон с вашим компонентом, который связывается и отображает одну переменную. Затем вы можете установить переменную, равную html, которую вы хотите отобразить. Пожалуйста, проверьте эти два похожих вопроса SO:

3
ответ дан Community 19 August 2018 в 14:43
поделиться

Я считаю, что все templateUrl относятся к корню вашего приложения, поэтому я не думаю, что это сработает.

2
ответ дан chrispy 19 August 2018 в 14:43
поделиться

Я закончил работу с scrape, чтобы получить новые html-файлы, а затем добавил команду serveride в мой файл index.html, чтобы добавить их.

0
ответ дан rich green 19 August 2018 в 14:43
поделиться
import { Directive, ElementRef, Input, OnInit } from '@angular/core';
import { Headers, Http, Response } from '@angular/http';

@Directive({ selector: 'ngInclude' })
export class NgIncludeDirective implements OnInit {

@Input('src')
private templateUrl: string;
@Input('type')
private type: string;

constructor(private element: ElementRef, private http: Http) {

}
parseTemplate(res: Response) {
    if (this.type == 'template') {
        this.element.nativeElement.innerHTML = res.text();
    } else if (this.type == 'style') {
        var head = document.head || document.getElementsByTagName('head')[0];
        var style = document.createElement('style');
        style.type = 'text/css';
        style.appendChild(document.createTextNode(res.text()));
        head.appendChild(style);
    }
}
handleTempalteError(err) {

}
ngOnInit() {
    //Loads the HTML and bind it to the view
    this.
        http.
        get(this.templateUrl).
        map(res => this.parseTemplate(res)).
        catch(this.handleTempalteError.bind(this)).subscribe(res => {
            console.log(res);
        });
}

}
0
ответ дан Swanand 19 August 2018 в 14:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: