Невозможно использовать объект со значением ключа 'templateUrl' в angular6 - PullRequest
0 голосов
/ 04 октября 2018

У меня есть объект ниже в component.ts, и я собираюсь повторить этот массив в шаблоне HTML внутри меню ui-comp.

menuObject = [{
        'labels': 'Content1',
        'templateUrl': 'assets/partials/sample.html',
        'childrens': [],
    },
    {
        'labels': 'Content2',
        'templateUrl': 'assets/partials/sample1.html',
    }];

и в html

<ui-comp-menu [data]="menuObject" [label]="'labels'" [url]="'routeUrl'" ></ui-comp-menu>

Но при компиляции я получил следующую ошибку

ОШИБКА в . / Src / app / app.component.ts

Модуль не найден: ошибка: Не удается разрешить './assets/partials/UserAdministration.html' в 'D: \ POC_Angular_6 \ lib-demo \ src \ appI

Если я изменю ключ объекта' templateUrl 'на какой-тодругое имя, например, templatePath, не будет успешно скомпилировано.Но я не уверен насчет предыдущих угловых версий.

1 Ответ

0 голосов
/ 04 октября 2018

Это ошибка из пакета angular-cli.Когда вы проверяете source code, вы видите, что они анализируют весь файл .ts и вычитают любой объект в нем.Затем они проверяют, есть ли объект с ключом templateUrl или styleUrls.

Это кажется немного ошибочным и может быть сделано более правильно.Например, чтобы проверить, находится ли вычтенный объект внутри аннотации (@Component).

Пара вещей, которые вы можете сделать здесь:

  • Отправьте отчет об ошибке, подождите, пока он исправитзамените ключ на что-то другое
  • Создайте собственный запрос на получение данных, подождите, пока они его примут, и т. д. *
  • Вы говорите, что данные поступают изAPI, если это так, вам не нужно иметь эти жестко заданные templateUrl определения в вашем файле машинописного текста.Достаточно подключиться к API и удалить их из вашего кода.
  • Измените ключ из API и просто сохраните его на этом
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...