J'essaie de développer une application en nativescript avec angulaire.
Je veux utiliser le tiroir latéral de telerik-ui comme un panneau de filtrage pour certaines données que je vais afficher dans la zone de texte de contenu principal. Le problème est que je n'ai pas d'erreur quand je lance mon code sauf le fait qu'il n'y a pas de sideDrawer du tout. Je ne sais pas comment le déboguer.
Je suis en train d'essayer d'utiliser cet exemple un peu modifié pour mon application (seuls les noms des fichiers):
http://docs.telerik.com/devtools/nativescript-ui/Controls/Angular/SideDrawer/getting-startednativescript angulaire sidedrawer n'apparaissant pas sans erreurs
filter.component.html:
<RadSideDrawer showOverNavigation="true" tkExampleTitle tkToggleNavButton class="page">
<StackLayout tkDrawerContent class="sideStackLayout">
<StackLayout class="sideTitleStackLayout">
<Label text="Navigation Menu"></Label>
</StackLayout>
<StackLayout class="sideStackLayout">
<Label text="Primary" class="sideLabel sideLightGrayLabel"></Label>
<Label text="Social" class="sideLabel"></Label>
<Label text="Promotions" class="sideLabel"></Label>
<Label text="Labels" class="sideLabel sideLightGrayLabel"></Label>
<Label text="Important" class="sideLabel"></Label>
<Label text="Starred" class="sideLabel"></Label>
<Label text="Sent Mail" class="sideLabel"></Label>
<Label text="Drafts" class="sideLabel"></Label>
</StackLayout>
<Label text="Close Drawer" color="lightgray" padding="10" style="horizontal-align: center" (tap)="onCloseDrawerTap()"></Label>
</StackLayout>
<StackLayout tkMainContent>
<Label [text]="mainContentText" textWrap="true" class="drawerContentText"></Label>
<Button text="OPEN DRAWER" (tap)="openDrawer()" class="drawerContentButton"></Button>
</StackLayout>
</RadSideDrawer>
filter.component.ts:
import { Component, ViewChild, OnInit, AfterViewInit, ChangeDetectorRef } from "@angular/core";
import { Page } from "ui/page";
import { ActionItem } from "ui/action-bar";
import { Observable } from "data/observable";
import { RadSideDrawerComponent, SideDrawerType } from "nativescript-telerik-ui/sidedrawer/angular";
import { RadSideDrawer } from 'nativescript-telerik-ui/sidedrawer';
@Component({
moduleId: module.id,
selector: "tk-sidedrawer-getting-started",
templateUrl: 'filter.component.html',
styleUrls: ['filter.component.css']
})
export class SideDrawerGettingStartedComponent implements AfterViewInit, OnInit {
private _mainContentText: string;
constructor(private _changeDetectionRef: ChangeDetectorRef) {
}
@ViewChild(RadSideDrawerComponent) public drawerComponent: RadSideDrawerComponent;
private drawer: RadSideDrawer;
ngAfterViewInit() {
this.drawer = this.drawerComponent.sideDrawer;
this._changeDetectionRef.detectChanges();
}
ngOnInit() {
this.mainContentText = "SideDrawer for NativeScript can be easily setup in the HTML definition of your page by defining tkDrawerContent and tkMainContent. The component has a default transition and position and also exposes notifications related to changes in its state. Swipe from left to open side drawer.";
}
get mainContentText() {
return this._mainContentText;
}
set mainContentText(value: string) {
this._mainContentText = value;
}
public openDrawer() {
this.drawer.showDrawer();
}
public onCloseDrawerTap() {
this.drawer.closeDrawer();
}
}
filter.module.ts:
import { NgModule, NO_ERRORS_SCHEMA } from "@angular/core";
import { NativeScriptModule } from "nativescript-angular/nativescript.module";
import { NativeScriptUISideDrawerModule } from "nativescript-telerik-ui/sidedrawer/angular";
import { FilterRoutingModule } from "./filter.routing";
import { SideDrawerGettingStartedComponent } from "./filter.component";
@NgModule({
imports: [
NativeScriptModule,
FilterRoutingModule,
NativeScriptUISideDrawerModule
],
declarations: [
SideDrawerGettingStartedComponent
],
schemas: [
NO_ERRORS_SCHEMA
]
})
export class FilterModule { }
filter.routing.ts:
import { NgModule } from "@angular/core";
import { Routes } from "@angular/router";
import { NativeScriptRouterModule } from "nativescript-angular/router";
import { SideDrawerGettingStartedComponent } from "./filter.component";
const routes: Routes = [
{ path: "filter", component: SideDrawerGettingStartedComponent }
];
@NgModule({
imports: [NativeScriptRouterModule.forChild(routes)],
exports: [NativeScriptRouterModule]
})
export class FilterRoutingModule { }
filter.component.css:
button {
font-size: 15;
horizontal-align: center;
}
.mainContentText {
font-size: 13;
padding: 10;
}
.mainContentButton {
margin: 10;
horizontal-align: left;
}
.drawerContentButton {
color: yellowgreen;
}
.sideStackLayout {
background-color: gray;
}
.sideTitleStackLayout {
height: 56;
text-align: center;
vertical-align: center;
}
.sideLabel {
padding: 10;
}
.sideLightGrayLabel {
background-color: lightgray;
}
Le tiroir latéral ne semble pas du tout quand je vais à cette page de filtrage. La structure de mon application est similaire à celle-ci: https://github.com/NativeScript/sample-Groceries
Toute aide serait appréciée.
Merci pour votre réponse c'était une idée intéressante. J'ai essayé et cela n'a pas fonctionné mais j'ai découvert que mon problème était lié à certaines dépendances en plus de nativescript-telerik-ui que j'avais besoin d'ajouter. J'aurais dû poster mon fichier package.json mais c'était difficile à dire sans exceptions ou erreurs – Axel
Oh Ouais, bien sûr, le problème principal de NativeScript avec dépendances -.- Je n'ai pas réussi à les ajouter aussi souvent. Merci de poster, comment vous le résoudre;) – RoalSky