Grails 컨트롤러에서 Knockout을 사용하여 JSON 데이터를 데이터 바인딩에 바인딩하려고합니다. 나는 반환되는 JSON 좋은 생각 :녹아웃 바인딩 json, 속성을 구문 분석 할 수 없습니다.
var Directory = {
list: ko.observableArray([])
};
var Person = function(id, first, last) {
this.id = ko.observable(id);
this.firstName = ko.observable(first);
this.lastName = ko.observable(last);
};
var loadPeople = function() {
$.ajax({
url: "${createLink(action: "getPeople")}",
type: "post",
contentType: "application/json",
success: function(result) {
for(p in result) {
Directory.list.push(new Person(p.id,p.firstName,p.lastName));
}
ko.applyBindings(Directory);
}
});
};
loadPeople();
그리고 마지막으로, 내 마크 업 : 제가 비슷한 질문에 고개 시도했습니다
<table>
<thead>
<tr><th>Id</th><th>First name</th><th>Last name</th></tr>
</thead>
<tbody data-bind="foreach: list">
<tr>
<td data-bind="text: id"></td>
<td data-bind="text: firstName"></td>
<td data-bind="text: lastName"></td>
</tr>
</tbody>
</table>
여기
result
[
Object
class: "project.Person"
firstName: "Bill"
id: 2
lastName: "Fake"
__proto__: Object
,
Object
class: "project.Person"
firstName: "Dale"
id: 3
lastName: "Fake"
__proto__: Object
,
Object
class: "project.Person"
firstName: "Linda"
id: 4
lastName: "Fake"
__proto__: Object
]
내 자바 스크립트입니다
list.Person
,
Person
, 관측 가능한 배열을
Directory
대신 바인딩에 전달합니다. 디버그 할 때
Directory.list()
에는 크기
3
Person
의 배열이 포함되어 있으므로 올바른 것으로 보입니다.
오류 : 어떤 도움에 감사드립니다
Uncaught Error: Unable to parse binding attribute. Message: ReferenceError: id is not defined; Attribute value: text: id
.