2013-01-20 133 views
0

我对新knockout.js.Very simple.trying获取数据(通过WebAPI - ajax调用)。这里是视图KnockOut绑定查看模型

<table> 
<thead> 
<tr> 
<td>First Name </td> 
<td>Last Name </td> 
<td> Email </td> 
</tr> 
</thead> 
<tbody data-bind="foreach:Contact"> 
<tr> 
<td data-bind="text:FirstName"></td> 
<td data-bind="text:LastName"></td> 
<td data-bind="text:EmailAddress"></td> 
</tr> 
</tbody> 
</table> 

这里是我的viewmodel和ajax call.Ajax调用返回3条记录。名字,姓氏和EmailAddress的

<script type="text/javascript" > 

    $(document).ready(function() {  
     var data = []; 
     var viewModel = { 
      Contact: ko.observableArray(data) 
     }; 
    $.ajax({ 
      url: "http://localhost/AW/api/Person", 
      type: "GET", 
      dataType: "json", 
      statusCode: { 
       200: function (contacts) { 
        viewModel.Contact = contacts; 
       } 
      } 
     }); 
     ko.applyBindings(new viewModel()); 
    });    
</script> 

正如我所说的API成功reurning记录,但它不具有约束力。可能要我在这里做一些愚蠢的。

200: function (contacts) { 
    viewModel.Contact(contacts); 
} 

而且因为你的视图模型是一个对象字面,而不是一个功能:

回答

2

ko.observableArray(如ko.observable)的,所以你需要用新的值作为参数调用它设置它的值返回一个函数你需要写:

ko.applyBindings(viewModel); 
+0

我试过,现在它没有工作。 – Sankara

+0

请检查您的浏览器的JavaScript控制台,有没有任何错误? – nemesv

+0

没有javascript的错误。在铬和火狐 – Sankara