0

私のフォルダーviewModelには次のものがあります。

  var observableData = ko.observable();
  function activate(routeData) {
     var buildObservableData = function (data) {
         observableData(ko.mapping.fromJS(data, mapping));
         // do stuff here that I need server data for
     }
     return dataservice.getFolder(currentFolderId, buildObservableData);
  }

getFolder を次のように使用します。

var getFolder = function (id, buildData) {
   var request = $.ajax({
            async: true,
            url: endpoint,
            type: 'GET',
            dataType: 'json',
            xhrFields: {
                withCredentials: true
            },
        })
            .done(function (data) {
                buildData(data);
            })
            .fail(function (msg) {
                toastr.error("Error: Could not load folder data.");
            });
    }

今、私のフォルダビューには、これがあります:

<!-- ko foreach: data().folders -->
<!-- /ko -->

したがって、あるフォルダーから別のフォルダーに移動すると、次のようになります。

"Unable to parse bindings.↵Message: TypeError: Cannot read property 'folders' of undefined;↵Bindings value: foreach: data().folders "

私は何を間違っていますか?

アップデート:

ajax 呼び出しをこれに変更すると、次のようになります。

return $.ajax({

これから:

var request = $.ajax({

その後、ビューをナビゲートできます...しかし、これが正しいかどうかはわかりません。他の誰かを助ける場合、または正しくない場合に備えて、これをそのままにしておきます。

4

1 に答える 1