0
有一個簡單的帶有ListView的NS/TS頁面 - 該列表由ObservableArray驅動。Nativescript - onItemLoading回調調用兩次
我向數組中添加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;我們可以通過下面的代碼來實現這個功能:我們可以通過下面的代碼來實現這個功能:1)StackLayout(217)@file:///app/my-notes-page.xml:39:15;
,我相信我寫的是有效的模型 - 模型方法onItemLoading被稱爲。只是爲了測試,我將它定義爲頁面方法 - 它被稱爲2x。你可以在HelloWorldModel構造函數中添加1條到ListView,看看會發生什麼。 – dashman
請在這裏找到完整的項目https://github.com/santoshanand/ns-list-sample –
我下載並運行它。 onItemLoading()方法被調用16次 - 頁面被刷新4次。我使用核心3.0.1和android 3.1.1的NS 2.5.3。 – dashman