ListViewから項目を削除しても、その変更はListViewに反映されず、NativeScriptでは更新されません。私はFirebaseをバックエンドとして使用していますが、データはデータベース内で正しく更新されています。削除後にListViewが更新されない
誰でも助けてください。私は以下のコードファイルを提供しています。スプライシング後、正しい結果が得られましたが、リストビューはそのデータとバインドされません。
list.model.ts
function delete(id) {
return firebase.remove("/Groceries/" + id + "");
};
list.ts
var items = [];
var itemsObject = new observableModule.fromObject({
groceryList: items
});
export function deleteValues(args) {
var item = args.view.bindingContext;
var page = <pages.Page>args.object;
deleteItems(item.key)
.then(
() => {
items.splice(items.indexOf(item), 1);
page.bindingContext = itemsObject;
}
).catch(
() => {
alert("error");
}
)
};
あなたはまだのようにListViewコントロールのためのitemListのを定義することができ
<Page loaded="loaded">
<GridLayout rows="auto, *" columns="2*, *">
<TextField id="grocery" text="{{ grocery }}" hint="Enter a grocery
item" row="0" col="0" />
<Button text="Add" tap="addGrocery" row="0" col="1" />
<ListView id="groceryList" items="{{ groceryList }}" row="1"
colSpan="2">
<ListView.itemTemplate>
<GridLayout columns="*, auto">
<Label text="{{ name }}" horizontalAlignment="left"
verticalAlignment="center"/>
<Image src="~/images/delete.png" col="1"
tap="deleteValues" />
</GridLayout>
</ListView.itemTemplate>
</ListView>
</GridLayout>
ListViewを強制的に更新するには、 'refresh'メソッドを使用できます。 - https://docs.nativescript.org/api-reference/classes/_ui_list_view_.listview.html#refresh –