0

エンティティ フレームワークからデータを取得するこのビュー モデルがあります。JSONから配列に正常に変換できますが、観察できません。観察可能なプロパティを持つモデルを作成してから、 for each を入力しようとしましたが、うまくいかなかったようです。また、サービス側では問題なく動作するように見えた ko.mapping.fromJSON を使用してみましたが、ビューでは常に空です。

function(logger, system, router, employeeService) {
var EmployeeDetails = ko.observableArray([]);


Activate Function -
    var activate = function () {
    return  GetEmployeeDetails(),GetTermList();
    };

 var vm = {
       activate: activate,
        FindID: ko.observable(),
        EmployeeDetails:  EmployeeDetails
     }


};


function GetEmployeeDetails() {
      return employeeService.getemployeeDetails(EmployeeDetails);

    }

// これは私の employeeService クラスの関数です

 var getEmployeedetails = function(employeeDetailsOb) {
        var jsonfromServer;
        $.ajax({
            type: "POST",
            dataType: "json",
            url: "/api/employee/getAllDetails/",
            data: '{}',
             success: function(data) {
                jsonfromServer = $.parseJSON(data);

      },
 error:
{ //error stuff})

Return employeeDetailsOb(jsonFromServer);
}
4

2 に答える 2

0

その呼び出しから実際に正常に戻る前に getEmployeeDetails(...) から EmployeeDetails() オブジェクトを返そうとしていると仮定すると、成功ハンドラ内に vm.EmployeeDetails 初期化を入れてみてください:

success: function(data) {
    jsonfromServer = $.parseJSON(data);

    for (var i = 0; i < jsonFromServer.list.length; ++i)
    {
        vm.EmployeeDetails.push(jsonFromServer.list[i]);
    }
},
于 2013-08-02T21:18:55.110 に答える
0

EmployeeDetails を監視可能な配列として設定したら、次のように監視可能な配列データを設定できると思います。

vm.EmployeeDetails(jsonfromServer.list);
于 2013-08-03T03:10:03.243 に答える