1

ko.computed で読み書きされるフィールドを動的に置き換える方法はありますか? たとえば、この関数では、self.JobStartDate を、渡すことができる変数フィールド名に置き換えたいと考えています。

function Job(data) {
    var self = this;
    ko.mapping.fromJS(data, {}, this); 

    var computedDateFn = {
        read: function() {
            return formatDate(ko.utils.unwrapObservable(self.JobStartDate), true);
        },

        write: function(value) {
            var jsonDate = "/Date(" + Date.parse(value).getTime();
            self.JobStartDate(jsonDate);
        }
    }

    this.formattedStartDate = ko.computed(computedDateFn);
    this.formattedEndDate = ko.computed(computedDateFn); // this guy would need the field it writes to/reads from to be self.JobEndDate
}
4

1 に答える 1

2

計算されたDateFnを、フィールド名を文字列として受け入れ、計算されたオブザーバブルを定義するオブジェクトを返す関数にすると、次のような配列表記を使用できます...

http://jsfiddle.net/bczengel/tMTCV/

于 2012-05-20T21:00:02.290 に答える