2

これは、データを取得してマッピングを呼び出す私の JavaScript です。

function loadData() {
    currentViewModel.isLoading(true);
    $.get('/api/myevents/' + eventId, null, function (data) {
        var details = ko.mapping.fromJS(data);
        currentViewModel.eventDetails(details);
    });
};

var viewModel = function () {
    var _self = this;
    this.eventDetails = ko.observable(null);
    this.isLoading = ko.observable(false);
    this.addShow = function () {
        addShowDialog();
    };
};

var currentViewModel = new viewModel();

ko.applyBindings(currentViewModel);

loadData();

返されるデータに配列を追加するまで、問題なく動作するようです。なんらかの奇妙な理由で、ノックアウトによってマップされません。

マッピングの両側にあるオブジェクトのスクリーンショットを添付しました。私は一般的にノックアウトに慣れていません。ここで何か基本的なことを見逃していませんか?

ありがとう。

サーバーから返されたデータ ノックアウトによってマッピングされたデータ

4

1 に答える 1

3

Shows: Object[0]と で失敗を判断していlength: 0ますか?見れば_latestValueわかりますArray[5]。配列はObservableArray、関数である にマップされます。Shows()内部の実数配列にアクセスするには、関数 (この場合は ) を呼び出す必要があります。

配列マッピングが正常に機能していることを示すフィドルを次に示します。

http://jsfiddle.net/jearles/VyH6y/

このサンプルを試して、正確なシナリオにマップできます。

于 2012-12-30T13:54:24.967 に答える