내가 여기에 문제의 예 만든 업데이트 될 때 테이블이 업데이트되지 :KnockoutJS - 배열
내 실제 코드가 ASP.NET 웹 방식에 매여있다 http://jsfiddle.net/JustinN/qWeLT/1/때문에, 예를 들어 코드를 공공 웹 서비스를 시연하기 위해 조정되었습니다.
기본적으로, 나는 바인딩하는 배열을 가지고 있지만, Ajax 호출 후에 테이블에는 업데이트 된 정보가 표시되지 않습니다. 내가 무엇을 놓치고 있는지 잘 모르겠다. 처음에는 맵핑 플러그인이 필요하다고 생각 했으므로 시도했지만 아직 어디에도 가지 않았다.
확실히 데이터를 변경할 때마다 바인딩을 적용 할 예정이 아니십니까?
[편집]
자바 스크립트 아래 아래
var ViewModel = function() {
var self = this;
self.items = ko.observableArray([]);
self.refresh = function() {
$.ajax({
type: "POST",
url: "http://api.wipmania.com/json",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
ko.mapping.fromJS(data.d, self.items.address);
}
});
};
}
var viewModel = new ViewModel();
$(function() {
ko.applyBindings(viewModel);
viewModel.refresh();
});
HTML :
<table data-bind="visible:items.length > 0">
<thead>
<tr>
<th>Country</th>
<th>Code</th>
</tr>
</thead>
<tbody data-bind="foreach: items">
<tr>
<td data-bind="text:country"></td>
<td data-bind="text:country_code"></td>
</tr>
</tbody>
</table>
죄송합니다. 코드를 붙여 넣기했지만 JSFiddle 예제를 항상 요구했습니다. 나는 이제 둘 다 포함 할 것이다. - 편집 및 수정. – JustinN
이 행에'.address '가 무엇입니까? 'ko.mapping.fromJS (data.d, self.items.address); ' – Niko
좋은 거래. 예, 복사하여 붙여 넣는 것이 가장 좋습니다 (사람들이 얼마나 자주 다시 입력하는지 놀라움).) 및 부가 기능 *으로 라이브 링크 (http://jsbin.com을 선호하지만 맛의 문제)가 좋습니다. –