2015-06-22 68 views
0

我試圖顯示數據庫中的所有員工,我無法實現它。Knockout js無法使用observableArray綁定數據

我的JS,

var EmployeeKoViewModel = function() { 
    var self = this; 
    self.EmpId = ko.observable(""); 
    self.Name = ko.observable(""); 
    self.City = ko.observable(""); 
    self.Employees = ko.observableArray([]); 
    GetEmployees(); 
    function GetEmployees() { 
     $.ajax({ 
      type: "GET", 
      url: "/Employee/About", 
     }).done(function (data) { 

      self.Employees.push(data); 


     }).error(function (ex) { 
      alert("Error"); 
     }); 
    } 


} 
$(document).ready(function myfunction() { 
    ko.applyBindings(new EmployeeKoViewModel()); 
}) 

而且我認爲,

<form> 
    <table> 
     <tr> 

      <td> 
       <div class="FixedContainer"> 
        <table data-bind="visible: Employees().length>0" style="border: double"> 
         <thead> 
          <tr> 
           <td>EmpId</td> 
           <td>Name</td> 
           <td>City</td> 

           <td></td> 
          </tr> 
         </thead> 
         <tbody data-bind="foreach: Employees"> 
          <tr> 
           <td data-bind="text: EmpId"></td> 
           <td data-bind="text: Name"></td> 
           <td data-bind="text: City"></td> 

          </tr> 


         </tbody> 
        </table> 
       </div> 
      </td> 
     </tr> 
    </table> 
</form> 

沒有數據顯示的UI。我起來瀏覽器,但沒有錯誤已籤控制檯。

你能指導我在哪裏做錯了請。

data 
[ 
ObjectCity: "Hyderabad" 
EmpId: 1Name: "Vivek" 
__proto__: Object 
] 
+1

'self.Employees.push(數據);'應該是'self.Employees(數據);',嘗試這種方式。你不需要 - 'self.EmpId = ko.observable(「」); self.Name = ko.observable(「」); self.City = ko.observable(「」);' – ramiramilu

+0

從'「/ Employee/About」調用返回的數據是什麼?你可以添加一個樣本嗎? – dotnetom

+0

@ramiramilu工作。 Previuosly我採取了相同的Observable陣列,但我已推動它的工作 – Vivekh

回答

3

self.Employees.push(data);應該self.Employees(data);

相關問題