2

コードは次のとおりです: EmployeeModel は viewModel であり、問​​題は、項目のプロパティ (従業員 (obs 配列) の deletedFlag) を変更すると、deletedItems が更新されないことです。

どうすればこれを修正できますか?

  function Employee(data) {
    this.employeid = ko.observable(data.employeid);
    this.name = ko.observable(data.name);
    this.isactive = ko.observable(data.isactive);
    this.deletedFlag = ko.observable(false);
}

var EmployeeModel = function () {
    var self = this;
    self.employees = ko.observableArray([]);

    self.deletedItems = ko.computed(function () {
        return ko.utils.arrayFilter(self.employees(), function (item) {
            return item.deletedFlag == true;
        });
    }, this);
}

EDIT:そして、次のコードは、削除のために配列から1つのアイテムをマークします

self.removeEmployee = function (employee) {
        employee.deletedFlag(true);
    };
4

1 に答える 1

1

プロパティdeletedFlagはオブザーバブルであるため、関数として呼び出して現在の値を取得する必要があります (値と直接比較することはできません)。

self.deletedItems = ko.computed(function () {
    return ko.utils.arrayFilter(self.employees(), function (item) {
        return item.deletedFlag() == true; // <===
    });
}, this);
于 2012-10-15T07:22:38.830 に答える