Gibt es eine Möglichkeit, eine Komponentenfunktion aus einer Ansicht aufzurufen? Etwas in den Linien von.Aurelia-Komponente. Gibt es eine Möglichkeit, auf eine Funktion einer Komponente im Typoskript zuzugreifen
Ich bin auf der Suche nach einer Möglichkeit, die show()
Funktion auf der Komponente von meinem ViewPage
aufrufen.
Komponente
//component.html
<template>
<div id="sidebar"></div>
</template>
// component.css
#sidebar {
display: none;
}
// component.ts
import {bindable} from 'aurelia-framework';
export class Sidebar {
@bindable data: Array<string>;
show =() : void => {
// Shows this specific side bar
}
hide =() : void => {
// Hides this specific side bar
}
}
Ansicht
// view.html
<template>
<require from="./sidebar"></require>
<sidebar data.bind="data"></sidebar>
<button click.delegate="showSidebar()"></button>
<template>
// view.ts
export class ViewPage {
data: Array<string> = ["Hello", "I", "Am", "Sidebar", "Content"];
showSidebar =() : void => {
// how to show the side bar component here??
// I need something like sidebar.show();?
}
}
Hi Tom, das ist der richtige Ansatz - eine gute Alternative und eine, die wir in unseren Projekten übernommen haben, ist die Erstellung eines Dienstes, der den Status für Ihre Sidebar verwaltet (einschließlich ob es sichtbar ist oder nicht) und diesen injiziert In die Ansicht möchten wir die Sidebar steuern. Das hat den zusätzlichen Vorteil, dass Sie Ihren Seitenleistenkontext beim Wechseln von Ansichten nicht verlieren (vorausgesetzt, Ihre Seitenleiste ist eine untergeordnete Komponente der Ansicht). –