Я делаю приложение с angular 5 и Nativescript. Что ж, в приложении у меня разные страницы (компоненты), и все они имеют одно и то же нижнее меню, которое является одним компонентом. Мой вопрос заключается в том, как передать параметр в компонент меню, потому что в компоненте меню мне нужно знать, что это текущая страница, например, для установки класса, активного для текущего пункта меню страницы.
Пример одной страницы:
<Page>
<ActionBar title = "" class = "action-bar">
<StackPanel orientation = "horitzontal">
<Label class = "action-title" text = "Canciones"></Label>
</StackPanel>
</ActionBar>
<StackLayout class = "page">
<ListView [items] = "filteredSongs" class = "songs-listview" (itemTap) = "songClick($event)" *ngIf = "!isLoading">
<ng-template let-item = "item">
<StackLayout>
<Label [text]='item.SON_NAME'></Label>
</StackLayout>
</ng-template>
</ListView>
<StackLayout verticalAlignment = "center" *ngIf = "isLoading" class = "loading-stack">
<ActivityIndicator busy = "{{ isLoading }}"></ActivityIndicator>
</StackLayout>
</StackLayout>
<main-menu></main-menu> // THE MENU COMPONENT
Если я правильно понимаю, компонент вашей страницы является родительским, а главное меню - дочерним. Вы хотите использовать входная привязка.
1) Измените тег главного меню на что-то вроде <main-menu [currentPage] = "Canciones"></main-menu>. Это отправит вход в компонент главного меню с именем currentPage и значением Canciones.
2) Затем вам нужно изменить MainMenuComponent, чтобы использовать только что привязанный ввод.
а) добавить import { Input } from '@angular/core';
б) внутри класса компонента объявить Input: @Input() currentPage: string;
c) при необходимости используйте переменную currentPage.
Освоив основы привязки ввода, вы можете изменить тип ввода и, в более общем смысле, привязать ссылку к текущему компоненту страницы.
Дэйвид