私はノックアウトjsの初心者です。基本的にページでやりたいことは、ビューにアクティブ化の詳細のリストをロードし、それぞれにリスト項目に関連付けられた削除リンクを付けることです。各アクティブ化の詳細項目には、index、ActivationDate、および ExpiryDate の 3 つのプロパティが含まれています。
var activationItem = {
'index': count,
'activationDate': item.activationDate,
'expiryDate': item.expiryDate
};
これで、ユーザーが特定のアイテムで削除をクリックするたびに。すべてのリストのインデックスを並べ替えて、適切にインクリメントされたインデックスを引き続き反映する必要があります。たとえば、アイテム 2 が削除された場合、1,3,4 の代わりに 1,2,3,4 になります。
どのようにそれが行われたかは、アレイを置き換えることです。次のように:
//Removes selected item from activationlist
self.RemoveActivationListItem_Click = function () {
self.activationListItems.remove(this);
var count = 1;
var replaceArray = ko.observable([]);
//Re index all of the array items
ko.utils.arrayForEach(self.activationListItems(), function(item) {
var activationItem = {
'index': count,
'activationDate': item.activationDate,
'expiryDate': item.expiryDate
};
replaceArray().push(activationItem);
count++;
});
self.activationListItems.removeAll();
self.activationListItems(replaceArray());
TINY.box.show({ html: "Activation item removed", animate: true, close: false, boxid: 'message',autohide:5,top:90,left:0});
};
これより良い方法はありませんか?