Angularjs до Angular upgrade - templateUrl и ng-include не отображают представление - PullRequest
0 голосов
/ 21 октября 2019

Я перевожу проект с 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, но это не работает. И также я не думаю, что это хорошее решение для решения этой проблемы. У кого-нибудь есть хорошее решение этой проблемы?

...