【发布时间】:2019-05-25 05:10:10
【问题描述】:
我尝试将我的 REST 服务器与 JavaScript 应用程序连接起来。使用 ajax 查询我得到了正确的 JSON,但我无法将它绑定到我的 HTML 网站。我在 HTML 中使用数据绑定:
<tbody>
<tr >
<td> <input type="number" data-bind="value: index" name="index" readonly> </td>
<td> <input type="text" data-bind="value: name" name="name"required> </td>
<td> <input type="text" data-bind="value: surname" name="surname"required> </td>
<td> <input type="date" data-bind="value: birthdate" name="birthdate" min="1950-01-01" max="2050-01-01" required> </td>
<td><button type="button" >Edit</button></td>
</tr>
</tbody>
在 .js 文件中我有以下代码:
'use strict';
var URL = 'http://localhost:8000/'
$(document).ready(function(){
var StateViewModel = function () {
var self = this;
self.students = ko.observableArray();
$.ajax({
url: URL + 'students',
type: 'GET',
dataType: 'json',
accepts: {
contentType: 'application/json'
}
}).done(function(result) {
console.log(result)
ko.mapping.fromJS(result, self.students);
});
}
var model = new StateViewModel();
ko.applyBindings(model);
});
我得到“ReferenceError: index is not defined”错误。
当我请求我的 REST 应用程序时,我得到以下 JSON:
[
{
"index": 127001,
"name": "John",
"surname": "Smith",
"birthdate": "1996-11-11"
},
{
"index": 127002,
"name": "Abcd",
"surname": "Xyz",
"birthdate": "1996-11-01"
}
]
而在 ajax 函数中 .done 结果是:
0: Object { index: 127001, name: "John", surname: "Smith", … }
1: Object { index: 127002, name: "Abcd", surname: "Xyz", … }
“ReferenceError: index is not defined”错误的原因是什么?
【问题讨论】:
-
ko到底是什么 -
ko是knockout.js
-
据我所知,
ko.mapping.fromJS最多只需要两个参数,而你传递它 3,第二个是一个空对象......这是为什么呢? -
没有它我也有同样的问题
标签: javascript jquery knockout.js komapping