Угловой 7: загрузить HTML-страницу из папки ресурсов в компоненте? - PullRequest
0 голосов
/ 27 декабря 2018

В моем прикладном компоненте под названием Window мне нужно каждый раз показывать различный HTML в зависимости от значений, возвращаемых службой.

Различные html-файлы хранятся в папке активов.Пример: - assets / guide1.html - assets / guide2.html - assets / guide3.html .... и так далее.и все эти файлы имеют статическое содержимое.

Сервис, который у нас есть для приложения, возвращает имя файла.Компонент будет знать имя файла html, и он должен загрузить html в свой шаблон.Как этого достичь?

  • Можно ли создать компонент, где templateUrl может быть выражением?Ниже приведен пример кода от angularjs:

app.directive('headermenu', function() {
  return {
    restrict: 'E',
    scope: {
      userRole : '='
    },
    link: function($scope)
    {
      $scope.$watch('userRole', function(userRole)
      {
        if (userRole && userRole.length)
        {
            $scope.dynamicTemplateUrl = 'assets/common/headerMenu' + userRole + '.html';
        }
      });
    },

    template: '<ng-include src="dynamicTemplateUrl"></ng-include>'
  };
});

тот же код по этой ссылке: plunker

  • Загружает ли ng-include HTML-файл из папки активов?Как этого добиться с помощью Angular 7?

1 Ответ

0 голосов
/ 20 февраля 2019

Вы можете загрузить файл, используя HttpClient , внедрив его в конструктор службы, затем попробуйте это

let path = 'assets/' + {fileName} + '.html';
this._httpClient.get(path, {responseType: "text"}).subscribe(
data => {
//now you have the file content in 'data'
});

для привязки из сервиса к html, вы можете обратиться к thisвопрос .

...