Недавно я начал с компонента Angular 1.5. У меня есть разные страницы в моем приложении. Поэтому я решил создать компонент <my-title>
, который я использую внутри компонента <my-header>
. Как вы видите, в навигационной панели у меня есть First, Second в качестве навигационных ссылок. В моем приложении будет больше родительских дочерних комбинаций.
Я хочу установить заголовок каждой страницы двумя способами.
- Предоставив его частично
<my-title>Home</my-title>
(см. 1.html или 2.html) (ответ Мануэля удовлетворяет этому сценарию) - Также я хотел бы установить его с контроллера.
vm.title = "current page title"
(Принятый ответ удовлетворяет только этому сценарию)
Я думаю, что из двух вышеперечисленных вариантов можно сделать что-то одно. Есть два ответа от разных людей для варианта 1 (Деблатон) и варианта 2 (Мануэль). Оба ответа удовлетворяют соответствующим сценариям. Я согласен с тем, кто первым ответил правильно.
Обновлено: если вы видите файл «1.html» в plunker. Я пытаюсь установить <my-title> First page</my-title>
. но это не работает. Моя ключевая идея заключается в том, что разработчик будет давать <my-title>Current Page Title</my-title>
частичному, и оно будет отображаться в соответствии с текущей страницей, когда он перемещается по ней.
Пожалуйста, имейте в виду, что я буду подвергать только <my-title>
частичному и контроллеру. <my-header>
будет только в одном месте. Изменится только заголовок. Если появятся новые страницы, навигационные ссылки будут добавлены в <my-header>
.
Здесь много кода, который можно скопировать и вставить. Посетите этот PLUNKER.
module.component('myFirstApp', {
templateUrl: "mainview.html",
$routeConfig: [
{path: '/', redirectTo: ['/First'] },
{path: '/first', name: 'First', component: 'firstComponent'},
{path: '/second', name: 'Second', component: 'secondComponent'}
]
})
module.component('firstComponent', {
templateUrl: "1.html"
});
module.component('secondComponent', {
templateUrl: "2.html"
});
module.component('myTitle', {
template: '<h1>{{model.title}}</h1>'
});
module.component('myHeader', {
templateUrl: "my-header.html"
});