data
이라는 중첩 JSON 객체가있는 JSON 문자열이 있습니다. 중첩 된 JSON 객체의 status
부분을 참조하려고하지만 HTML에서 참조 할 때 KnockoutJS가 내 테이블의 Status와 관련된 셀을 채우지 않습니다. 그러나 KnockoutJS는 테이블의 보낸 사람 부분을 채 웁니다.KnockoutJS로 중첩 JSON 객체를 참조 할 수 없습니다.
JSON :
[{"statusmsg":"OK","data":{"status":"running"},"sender":"hostname","statuscode":0}]
KnockoutJS (service.js) :
function ServiceViewModel() {
var self = this;
self.rows = ko.observableArray();
$.ajax({
method: "GET",
url: "/mcollective/service/status/servicename",
success: function(data) {
var observableData = ko.mapping.fromJSON(data);
var array = observableData();
self.rows(array);
}
});
};
$(document).ready(function() {
ko.applyBindings(new ServiceViewModel());
});
HTML :
<tbody data-bind="foreach: rows">
<tr>
<td data-bind="text: sender"></td>
<td>
<span data-bind="text: data.status,
css: { 'label-success': data.status == 'running',
'label-danger': data.status == 'stopped',
'label': true }">
</span>
</td>
<td>
</tr>
</tbody>
참고 : 나는 또한 CSS에 대한 부트 스트랩을 사용하고 있습니다.
Firefox 웹 개발자 콘솔을 점검했는데 스크립트에 관한 오류가 없습니다.