Я перевожу проект с angular1.4 на Angular8. Я настроил среду сборки в Angular и загрузил приложение Angularjs через него. Однако templateUrl и ng-include не работают. Эти функции не могут отображать представление, хотя соответствующий контроллер вызывается успешно. Пример кода этих функций выглядит следующим образом -
$stateProvider
.state('login', {
url: '/login',
templateUrl: 'app/user/user-login.html',
controller: 'LoginCtrl as login'
});
и
<header data-ng-include="'components/header/page-header.html'"></header>
Теперь в обоих случаях контроллер вызывается успешно, но отображается пустая страница.
ДляРешение Я попытался загрузить эти шаблоны с настройкой raw-loader в конфигурации webpack ->
module.exports = {
module: {
rules: [
{ test: /\.(html)$/, use: 'raw-loader' }
],
}
};
, а затем импортировать это в мой файл js и заменить templateUrl на template ->
import loginTemplate from './user-login.html';
$stateProvider
.state('login', {
url: '/login',
template: loginTemplate,
controller: 'LoginCtrl as login'
})
Это работает нормально. Однако я должен сделать это изменение во многих местах. Плюс проблема нг-включения, которая до сих пор не решена. Я также попытался добавить эти частичные HTML-файлы в templateCache, но это не работает. И также я не думаю, что это хорошее решение для решения этой проблемы. У кого-нибудь есть хорошее решение этой проблемы?