有一个带有ListView的简单NS / TS页面 - 该列表由ObservableArray驱动。
我在数组中添加1个条目,onItemLoading事件被称为2x。
这是我的XML
<ListView items="{{ dataItems }}"
itemLoading="{{ onItemLoading }}"
itemTap="{{ onNoteTap }}"
itemTemplateSelector="'note'">
<ListView.itemTemplates>
<template key="note">
<StackLayout>
<Label id="label"/>
</StackLayout>
</template>
</ListView.itemTemplates>
</ListView>
这是我的模型类
export class NotesModel extends observable.Observable
{
public _listItemArray: ObservableArray<NoteItem>;
constructor()
{
super();
this._listItemArray = new ObservableArray<NoteItem>();
let item = new NoteItem();
item.label = "test";
this._listItemArray.push( item );
}
get dataItems(): ObservableArray<NoteItem>
{
return this._listItemArray;
}
onItemLoading( args: listviewModule.ItemEventData )
{
console.log( "onItemLoading =" + args.index + " " + args.view );
}
onNoteTap( args )
{
}
}
运行代码后,我得到:
JS:构造函数
JS:onItemLoading = 0 StackLayout(217)@file:///app/my-notes-page.xml:39:15;
JS:onItemLoading = 0 StackLayout(217)@file:///app/my-notes-page.xml:39:15;
答案 0 :(得分:0)
这是您的xml文件
<ListView items="{{ dataItems }}"
itemLoading="onItemLoading"
itemTap="{{ onNoteTap }}"
itemTemplateSelector="'note'">
<ListView.itemTemplates>
<template key="note">
<StackLayout>
<Label id="label"/>
</StackLayout>
</template>
</ListView.itemTemplates>
</ListView>
这是您的 main.ts 文件代码,而不是型号ts
import { EventData } from 'data/observable';
import { Page } from 'ui/page';
import { HelloWorldModel } from './main-view-model';
// Event handler for Page "navigatingTo" event attached in main-page.xml
export function navigatingTo(args: EventData) {
let page = <Page>args.object;
page.bindingContext = new HelloWorldModel();
}
export function onItemLoading(args) {
console.log('Calling here ');
}