Ответ 1
Обновить. Они перестали работать над этой версией маршрутизатора и начали версию 3 с различными API-интерфейсами. По состоянию на 20 июня 2016 года не было рекомендованного способа для использования маршрутизатора v3 с Angular 1. Я не уверен, что это изменилось поскольку. Этот вопрос и ответ ниже относятся к Router v2 (aka ComponentRouter).
Устаревший API
Несколько сайтов указывают, что компонент в Angular 1 (для нового маршрутизатора) - это контроллер, зарегистрированный как [name]Controller
, и шаблон, полученный из component/[name]/[name].html
. Это устарело.
Новый API
В этом обсуждении содержится последняя информация, объясняющая, как получить последнюю версию нового маршрутизатора Angular 1.
Компонент, используемый в конфигурации, сопоставляется с директивой, зарегистрированной с именем компонента. См. Этот образец.
angular.module('app.home', [])
.directive('home', function() {
return {
template: 'Hello {{ home.text }}',
controller: function HomeController() {
this.text = 'World';
},
controllerAs: 'home'
}
});
С Angular 1.5 появился новый синтаксис для регистрации компонентов, см. здесь. Я использовал его с этим синтаксисом:
angular.module('app.home', [])
.component('home', {
restrict: "EA",
template: 'Hello {{ home.text }}',
controller: function HomeController() {
this.text = 'World';
}
// to configure a child route
//,$routeConfig: [
// { aux: "/son", component: "son", as: "Left" },
// { aux: "/daughter", component: "daughter", as: "Left" }]
});