Короче говоря:
Вы неправильно настраиваете RadSideDrawer
. Вам нужно установить ящик в представлении root и пометить содержимое ящика с помощью селектора tkDrawerContent
, а маршрутизатор angular с селектором tkMainContent
.
Подробно вам необходимо:
Во-первых, установите RadSideDrawer
в самом верхнем компоненте вашего приложения, т.е. на app.component. html, чтобы было содержимое бокового ящика, помеченное селектором tkDrawerContent
, и остальное содержимое (содержимое вашего приложения), помеченное селектором tkMainContent
. Если вы используете маршрутизатор Angular, добавьте его в <page-router-outlet></page-router-outlet>
, как показано ниже:
app.component. html:
<RadSideDrawer>
<GridLayout tkDrawerContent rows="auto, *">
<!-- content of the drawer -->
</GridLayout>
<page-router-outlet tkMainContent></page-router-outlet>
</RadSideDrawer>
Вы можете визуализировать любой пользовательский компонент, который у вас есть вместо / внутри tkDrawerContent с пометкой GridLayout выше.
Во-вторых, обязательно импортируйте NativeScriptUISideDrawerModule
в модуль, который загружает компонент с <RadSideDrawer>
внутри него. В моем примере это app.module .
app.module.ts:
import { NativeScriptUISideDrawerModule } from 'nativescript-ui-sidedrawer/angular';
@NgModule({
bootstrap: [
AppComponent
],
imports: [
NativeScriptModule,
AppRoutingModule,
NativeScriptUISideDrawerModule
],
declarations: [
AppComponent
],
schemas: [
NO_ERRORS_SCHEMA
]
})
В-третьих, открыть / закрыть боковой ящик, вам нужно получить к нему доступ через приложение RootView. Внутри вашего компонента добавьте:
home.compon enet .ts:
Импорт:
import { RadSideDrawer } from 'nativescript-ui-sidedrawer';
И внутри вашего класса:
public openSideDrawer() {
const sideDrawer = <RadSideDrawer>app.getRootView();
sideDrawer.showDrawer();
}
Если ваше приложение становится очень сложным с несколькими страницами и маршрутами, то вы можете добавить код для открытия / закрытия ящика в службе пользовательского интерфейса, введенной в root, или в общий пользовательский компонент actionBar.
Исправление для вашего примера: игровая площадка .
С днем рождения!