KnockoutJS - 如何根据返回的 JSON 结果计算数据
KnockoutJS - How to compute data from returned JSON results
我正在尝试更改返回 JSON
的 DOB resource.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
有什么建议吗?
绑定试图在函数存在之前执行您的函数。您应该在 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);
}
);
我正在尝试更改返回 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
有什么建议吗?
绑定试图在函数存在之前执行您的函数。您应该在 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);
}
);