2016-07-19 7 views
0

Es gibt keinen Fehler in der Konsole, ich habe viele Dinge ausprobiert, aber kann das eigentliche Problem mit Code nicht verstehen. Kann jemand helfen, in diesem mir .. und Emulator Snippets und Code unten:Binding Context funktioniert nicht Nativescript

home.ts:

enter code here 
import {EventData,Observable} from "data/observable"; 
import {Page} from "ui/page"; 
var page : Page; 
var tempSessions = [ 
{ 
    id:"0", 
title:"session 0" 
},{ 
    id:"1", 
    title:"session 1" 
},{ 
    id:"2", 
    title:"session 2" 
}]; 
export function pageLoaded(args:EventData) { 
    page = <Page>args.object; 
    page.bindingContext = new Observable({ 
    sessions:tempSessions 
    }); 
} 

home.xml:

<Page xmlns="http://schemas.nativescript.org/tns.xsd" load="pageLoaded"> 
     <GridLayout rows="auto,*"> 
     <!--row 0--> 
     <StackLayout></StackLayout> 
     <!--row 1--> 
     <GridLayout rows="auto,*" row="1"> 
      <ListView items="{{ sessions }}"> 
      <ListView.itemTemplate> 
       <Label text="item"/> 
      </ListView.itemTemplate> 
      </ListView> 
     </GridLayout> 
     </GridLayout> 
    </Page> 

emulator

Antwort

1

ich einige Probleme gefunden in deinem Code. Die erste ist, dass das Seitenereignis loaded statt load heißt. Die zweite Möglichkeit ist, dass Sie ObservableArray Module verwenden könnten, wodurch die ListView automatisch aktualisiert würde, wenn Sie ein neues Element in das Array schieben. Sie konnten die NativeScript Getting Started Guide Haupt page.xml

<Page xmlns="http://schemas.nativescript.org/tns.xsd" loaded="pageLoaded"> 
    <GridLayout rows="auto,*"> 
    <!--row 0--> 
    <StackLayout row="0"> 
     <Label text="sample text" textWrap="true" /> 
    </StackLayout> 
    <!--row 1--> 
    <GridLayout rows="*" row="1"> 
     <ListView row="0" items="{{ sessions }}"> 
     <ListView.itemTemplate> 
      <StackLayout> 
       <Label text="{{title}}"/> 
      </StackLayout> 
     </ListView.itemTemplate> 
     </ListView> 
    </GridLayout> 
    </GridLayout> 
</Page> 

Haupt page.ts

import {EventData,Observable} from "data/observable"; 
import {ObservableArray} from "data/observable-array"; 
import {Page} from "ui/page"; 
var page : Page; 
var tempSessions = new ObservableArray(); 

export function pageLoaded(args:EventData) { 
    tempSessions.push({ 
    id:"0", 
title:"session 0" 
}); 
tempSessions.push({ 
    id:"1", 
    title:"session 1" 
}); 
tempSessions.push({ 
    id:"2", 
    title:"session 2" 
}); 
    page = <Page>args.object; 
    page.bindingContext = new Observable({ 
    sessions:tempSessions 
    }); 
} 
+0

Dank für die Hilfe überprüfen .. –