我正在尝试更改返回的JSON
中显示DOBresource.birthDate
的方式
Knockout.js:
this.rows= ko.observableArray([]);
$.getJSON(
"./malib/api-call.php",
function (data) {
self.rows(data.entry);
}
);
和HTML:
<tbody data-bind="foreach: rows">
<tr data-bind="attr: { id: resource.id}, css: {'isSelected':$root.selPatient() == $data}, click: $parent.highlightPatient.bind($parent), event : { dblclick: $parent.selectPatient.bind($parent) }" >
<td class="col_name" data-bind="text: resource.name[0].text"></td>
<td class="col_dob" data-bind="text: resource.birthDate"></td>
<td class="col_gender" data-bind="text: resource.gender"></td>
<td class="col_address" data-bind="text: resource.address[0].line[0] + ', ' + resource.address[0].city + ' ' + resource.address[0].state + ' ' + resource.address[0].postalCode"></td>
</tr>
</tbody>
我在KnockoutJS部分添加了以下代码:
this.rows= ko.observableArray([]);
$.getJSON(
"./malib/api-call.php",
function (data) {
self.rows(data.entry);
self.returnDOB = function(item) {
var nonusDOB = item.split("-");
return nonusDOB[2] +"/"+ nonusDOB[1] +"/"+ nonusDOB[0];
};
}
);
并替换为HTML:
<td class="col_dob" data-bind="text: returnDOB(resource.birthDate)"></td>
但该解决方案会抛出错误
Message: returnDOB is not defined
有关于此的任何提示吗?
答案 0 :(得分:1)
绑定试图在函数存在之前执行您的函数。您应该在json请求之外创建函数。
self.returnDOB = function(item) {
var nonusDOB = item.split("-");
return nonusDOB[2] +"/"+ nonusDOB[1] +"/"+ nonusDOB[0];
};
$.getJSON(
"./malib/api-call.php",
function (data) {
self.rows(data.entry);
}
);