0
녹아웃 js 매핑을 사용하여 작업하는 동안 샘플을 실행하려고하면 콘솔 오류가 발생합니다. 여기 knockoutjs 있음 "캐치되지 않은 오류 : 바인딩을 구문 분석 할 수 없습니다."오류가 발생하지만 코드가 작동합니다.
Uncaught Error: Unable to parse bindings. Message: ReferenceError: loadUserData is not defined; Bindings value: click: loadUserData
코드
,<form action="#" method="post">
<p>First name: <input data-bind='value: firstName' /></p>
<p>Last name: <input data-bind='value: lastName' /></p>
<div>
Your favorite food:
<select data-bind='options: activities, value: favoriteHobby'></select>
</div>
<p><button data-bind='click: loadUserData'>Load data</button></p>
<p><button data-bind='click: saveUserData'>Save Data</button></p>
</form>
<script>
function PersonViewModel() {
var self = this;
self.firstName = "";
self.lastName = "";
self.activities = [];
self.favoriteHobby = "";
self.loadUserData = function() {
$.getJSON("/get-user-data.json", function (data) {
var viewModel = ko.mapping.fromJS(data);
ko.applyBindings(viewModel);
});
}
self.saveUserData = function() {
var data_to_send = { userData: ko.toJSON(self) };
$.post("/save-user-data", data_to_send, function (data) {
alert("Your data has been posted to the server!");
}).fail(function() {
alert("Ensure the Url before save the data");
});
}
}
ko.applyBindings(new PersonViewModel());
</script>
GET-사용자 data.json
{
"firstName": "John",
"lastName": "Smith",
"activities": [ "Golf", "Kayaking", "Web Development" ],
"favoriteHobby": "Golf"
}
동안 클릭 데이터를로드 버튼 오류 발생하는,하지만 샘플 작품, 어떻게 이 오류를 지우려면
녹아웃에서는 관찰 가능 항목을 사용하여 UI를 업데이트합니다. 당신은'loadUserData'의 콜백처럼 바인딩을 두 번 적용하지 않을 수 있습니다 ** ** **. 자습서를 통해 서버의 데이터로 뷰 모델을 업데이트하는 방법에 대한 느낌을 얻으시기 바랍니다. – user3297291