2016-07-17 13 views
0

Ich habe Probleme mit dem Routing in Mys ListView. Routing scheint nicht zu funktionieren oder sehr langsam zu sein. HierRouting in ListView funktioniert nicht

ist die "html" Ansicht:

<ActionBar [title]="'TITLE' | translate" > 
    <ActionItem [text]="'SETTINGS' | translate " (tap)="settings()" 
    android.systemIcon="ic_menu_share_holo_dark" 
    ios.systemIcon="9" 
    ios.position="right"> 
    </ActionItem> 
</ActionBar> 
<GridLayout rows="auto, auto, *"> 

    <SearchBar [(ngModel)]="search" [hint]="'SEARCH' | translate" row="0" 
    (submit)="searchSubmit()" 
    (clear)="searchClear()" 
    #searchFilter (keyup) = "0" 
    ></SearchBar> 

    <Button **(tap)="select(null)"** row="1" ></Button> 

    <!--<ListView [items]="groceryList" row="1" class="small-spacing"> --> 
    <ListView [items]="signalList | signalFilter:search " row="2" class="small-spacing" [class.visible]="listLoaded"> 
    <template let-item="item"> 
     <GridLayout rows="*" columns="50px, *, auto" > 
      <Image col="0" [src]="item.image | signalImage " stretch="none" 
       horizontalAlignment="center" verticalAlignement="center" 
       ></Image> 
      <StackLayout col="1" **(tap)="select(item)"** > 
      <Label [text]="item.name" class="medium-spacing" class="list-title"></Label> 
      <Label [text]="item.description | slice:0:150" class="list-description" textwrap="true" ></Label> 
      </StackLayout> 
      <Button col="2" text="See" **(tap)="select(item)"** ></Button> 
     </GridLayout> 
    </template> 
    </ListView> 

    <ActivityIndicator [busy]="isLoading" 
     [visibility]="isLoading ? 'visible' : 'collapse'" 
      row="1" 
      horizontalAlignment="center" verticalAlignment="center"> 
    </ActivityIndicator> 

Ich habe einige tippen Sie auf verschiedene Objekte: - Auf Knopfdruck unter meiner Suchleiste (nur Test) - Auf dem stacklayout , - Auf einen Knopf rechts neben meinem Stacklayout. Hier

ist der Code:

select(signal : Signal) { 
     console.dump(signal); 
     // For the debug ... 
     let id:string = "2"; 
     //if(signal != null) { id = signal.id; } 
     this._router.navigate(["View", { id: id }]); 
    } 

Wenn ich auf der ersten Taste tippen: every geht gut und schnell. Wenn ich auf die anderen Möglichkeiten tippe: Routing funktioniert nicht. Ich muss ein anderes Ereignis machen, wie zum Beispiel die Suche in der Suchleiste, damit die Dinge funktionieren.

Hier mein package.json:

{ 
    // [...] 
    }, 
    "dependencies": { 
    "@angular/common": "2.0.0-rc.4", 
    "@angular/compiler": "2.0.0-rc.4", 
    "@angular/core": "2.0.0-rc.4", 
    "@angular/platform-browser": "2.0.0-rc.4", 
    "@angular/platform-browser-dynamic": "2.0.0-rc.4", 
    "@angular/platform-server": "2.0.0-rc.4", 
    "@angular/router-deprecated": "2.0.0-rc.2", 
    "nativescript-angular": "0.2.0", 
    "nativescript-ng2-translate": "^1.1.0", 
    "ng2-translate": "^2.2.2", 
    "tns-core-modules": "^2.1.0" 
    }, 
    "devDependencies": { 
    "babel-traverse": "6.10.4", 
    "babel-types": "6.11.1", 
    "babylon": "6.8.4", 
    "filewalker": "0.1.3", 
    "lazy": "1.0.11", 
    "nativescript-dev-typescript": "^0.3.2", 
    "typescript": "^1.8.10" 
} 
} 

Ps: Ich habe bemerkt, dass ich zwei packages.json habe. Eine in meinem Stammprojektordner und eine zweite in meinem App-Projektordner. Sie scheinen nicht synchronisiert zu sein. Kann das ein Problem sein? Welcher wird schließlich benutzt? In diesem Beitrag zeige ich dir das Projekt.

Antwort

0

Meiner Meinung nach gibt es ein Problem mit der Art, wie Sie den Router verwenden. In NativeScript Angular2 Projekt könnten Sie RouterConfig Objekt erstellen, das Pfade zu Komponenten abbildet oder router-outlet verwenden, können Sie Artikel this Artikel, wo beschrieben worden, wie Navigation in NativeScript-Anwendung mit Angular tun. In Bezug auf Problem könnten Sie auch mein Beispielprojekt in this Repo

+0

überprüfen Ich habe meinen Code geändert. Aber ich habe immer noch ein Problem: Wenn ich einen Knopf außerhalb der Liste benutze und zurückkomme: kein Problem. Aber wenn ich das gleiche in der Liste mache und zurückkomme: die ngInit-Methode meiner Liste wird nicht aufgerufen ... So ist meine Seite leer ... – xiii29

+0

Sie könnten versuchen, Ihren ListView-Inhalt im 'Konstruktor' oder auf ListView zu laden 'onloaded' Ereignis. Dies sollte Ihr Problem mit der Navigation und Ihrem ListView lösen. In diesem Zusammenhang habe ich mein Beispielprojekt aktualisiert und ListView auf der zweiten Seite hinzugefügt. –

+0

funktioniert auch nicht ... Und basierend auf was ich lese, sollte es auf ngOnInit getan werden. Warum heißt es nicht so wie früher? Ich denke, dass ich mein Projekt basierend auf Änderungen am Dokument neu starten muss ... Danke für deine Hilfe. – xiii29