Есть много способов сделать это.Я предлагаю вам определить функцию get внутри контроллера вашего компонента боковой панели приложения, например 'getSelectedItem', который возвращает значение выбранного элемента.Так что теперь вы можете восстановить выбранное значение в любое время благодаря привязке и передать значение другому компоненту.
Следовательно, в вашем компоненте боковой панели приложения вы можете определить привязку
binding: {
getSelectedValue: '='
}
В контроллере теперь вы можете определить функцию get
thsi.getSelectedValue = {
// do your stuff here
return selectedValue
}
Теперь важный отрывок: в главном контроллере (я имею в виду контроллер HTML-страницы, в которой вы используете оба компонента)Вы должны объявить функцию, просто чтобы сообщить angular, что эта функция существует, но она здесь не определена (на самом деле мы хотим вызвать функцию, объявленную в компоненте, чтобы восстановить выбранное значение).Так что в вашем контроллере вам нужно просто написать
this.getValue;
Теперь на html-странице вы можете использовать ваш измененный компонент следующим образом:
<app-sidebar get-selected-value='mainController.getValue'></app-sidebar>
(Запомните нотацию kebab: getSelectedItem toget-selectd-item)
Это своего рода переплет реверса.Фактически вы обычно определяете функцию в своем главном контроллере, а затем передаете ее своему компоненту.В этом случае функция определена в вашем компоненте, но благодаря привязке теперь вы можете вызывать функцию getSelectedItem в вашем главном контроллере, вызывая this.getValue ();На самом деле функция this.getValue () не определена в контроллере, она просто объявлена, но она связана с функцией getSelectedValue.
В этот момент у вас есть ваше значение, и вы можете передать его вдругой компонент.
Возможно, этот метод немного длиннее, чем другой, но я предлагаю использовать его, потому что во многих случаях очень полезно использовать эту «обратную» привязку.