Как использовать ui-sref в ui-роутере AngularJS - PullRequest
0 голосов
/ 18 октября 2018

У меня есть файл index.html:

<!DOCTYPE html>
<html>
<head>
    <style>
        .navbar { border-radius:0; }
    </style>
    <link rel="stylesheet" type="text/css" href="lib/css/bootstrap.min.css">
    <script src="./node_modules/angular/angular.js"></script>
    <script src="./node_modules/angular-ui-bootstrap/dist/ui-bootstrap-tpls.js"></script>
    <script src="./node_modules/angular-ui-router/release/angular-ui-router.js"></script>
    <script src="lib/js/app.js"></script>
</head>

<body ng-app="nav-module">
    <a ui-view="home" ui-sref="home" ui-sref-active="active">home</a>
    <a ui-view="about" ui-sref="about" ui-sref-active="active">about</a>
        <ui-view>
        </ui-view>

</body>
</html>

и файл app.js:

var app = angular.module("nav-module", ["ui.router",'ui.bootstrap']);
app.component('navComponent',{
    templateUrl: './navbar.component.html'
});
app.config(['$stateProvider',
'$urlRouterProvider',function($stateProvider,$urlRouterProvider) {
    $stateProvider
    .state('/home',{
        name: 'home page',
        url:'/home',
        template: '<h3>hello world!</h3>'
    })
    .state('/about',{
        url:'/about',
        component: 'navComponent'
    });
    $urlRouterProvider.otherwise('/home');
}]);

и nav-bar.component.html:

<h1>nav bar</h1>

но я не могу щелкнуть тег, чтобы запустить страницу, и когда я изменяю / о в URL-адресе, выводится сообщение об ошибке консоли:

Не удалось загрузить шаблон: ./navbar.component.html

Не знаю почему.

1 Ответ

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

Я думаю, что вам не хватает местоположения templateurl или имени файла, когда вы упоминаете, что ваш templateUrl: './ navbar.component.html', но ваше имя файла nav-bar.component.html.

  1. Сначала удалите templateUrl и проверьте его, используя template: <h1>nav bar</h1> в компоненте.
  2. Если все в порядке, то ваша ошибка заключается в том, что вы просто пропустили ссылку на templateUrl или имя файла.
  3. Затем исправьте это, используя ../app/navtemplateurl.html, и имя файла - navtemplateurl.html, которое находится в папке приложения.

Добавление 'ui.bootstrap.tpls' в ваш модуль также может решить эту проблему

Обновление : просто изменить ссылку на маршрутизатор angularui с индексного файла на <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/1.0.0-rc.1/angular-ui-router.js"></script>, поскольку шаблоны компонентов в ui-router не поддерживаются в v0.4.2 или более ранних версиях.Вам также необходимо обновить это.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...