2016-07-19 3 views
0

Ошибка в консоли, я пробовал много вещей, но не могу понять актуальную проблему с кодом. Может кто-нибудь помочь мне в этом .. и эмулятор сниппеты и код ниже:Связывание Контекст не работает 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

ответ

1

Я нашел несколько вопросов в вашем коде. Первый заключается в том, что событие страницы называется loaded вместо load. Во-вторых, вы можете использовать ObservableArray Module, что автоматически обновит ListView при нажатии нового элемента в массиве. Вы могли бы рассмотреть NativeScript Getting Started Guide основного 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> 

ОСНОВНОЙ 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

благодарит за помощь .. –

Смежные вопросы