Новая угловая папка компонентов силы под корневым каталогом
Я пытаюсь использовать новый угловой маршрутизатор в своем проекте Angular 1.5 (+ Typescript).
Я следовал руководству по началу работы, но оно вынуждает меня иметь все мои папки компонентов HTML прямо в моей корневой папке:
Не удалось создать экземпляр контроллера HomeController
http://localhost:8083/components/home/home.html 404 (не найден)
Могу ли я изменить это?
Мой код маршрутизации:
this.$router.config([
{ path: '/', redirectTo: '/home' },
{ path: '/home', component: 'home' }}
]);
И мой компонент:
namespace app.dashboard {
'use strict';
class HomeController {
}
angular.module('app.dashboard')
.component('home', {
templateUrl: 'app/dashboard/components/home.html',
controller: HomeController,
controllerAs: 'HomeController',
bindings: {}
});
}
и моя вложенная папка - app/dashboard/components под корневым путем
1 ответ
Чтобы ваш html был где-то еще, вам нужно указать templateURL как:
this.$router.config([
{ path: '/', redirectTo: '/home' },
{ path: '/home', component: 'home' },
{ path: '/login', component: 'login', templateUrl: '/views/login' }
]);
templateUrl - {string=|function()=} - путь или функция, которая возвращает путь к HTML-шаблону, который должен использоваться ngView.
Если templateUrl является функцией, она будет вызываться со следующими параметрами:
{Array.} - параметры маршрута, извлеченные из текущего $location.path() путем применения текущего маршрута
Вы можете найти больше по этой ссылке о рутировании. под templateUrl вы можете указать путь к файлу без расширения.
ОБНОВЛЕНИЕ: Вы хотите использовать этот конкретный this.$ Router.config? Я спрашиваю это, потому что вы можете что-то вроде:
app.config(['$stateProvider', '$locationProvider', function ($stateProvider, $locationProvider) {
// UI States, URL Routing & Mapping. For more info see: https://github.com/angular-ui/ui-router
// ------------------------------------------------------------------------------------------------------------
$stateProvider
.state('home', {
url: '/',
templateUrl: '/views/index',
controller: 'HomeCtrl'
});
}]);
И вам не нужно будет использовать компоненты, я думаю, это то же самое для рутинга, но вам нужно будет добавить ui.router в качестве зависимости к вашему приложению.