나는 knockoutjs를 배우기로 결심했으며, json을 내 viewmodel에 바인딩하는 데 약간의 문제가 있습니다. 나는 그 더미를 수색 해 보았고, 많은 것을 시도했지만, 나는 무엇인가 놓쳤을 것임에 틀림 없다.knockoutjs 매핑을 사용하여 뷰 모델 바인딩
자바 스크립트 :
var data = {
"TestList": [{ "ID": "1", "Name": "Dave" }, { "ID": "2", "Name": "Mustaine" }],
"TestText": "Hello World"
};
var viewModel = {};
ko.mapping.fromJSON(data, viewModel);
ko.applyBindings(viewModel);
HTML
TestText: <span data-bind="text: TestText"></span><br>
TestList: <select id="TestList"
data-bind="
options: TestList,
optionsText: 'Name',
optionsValue: 'ID',
optionsCaption: 'Please Select'"></select>
편집
변수 '데이터'내가 얻을 JSON의 예로서 사용되었다다시 서버에서. 어쨌든, 위의 코드를 getJSON으로 업데이트하고 위의 예제가 getJSON을 사용하지 않아서 실제로 제공하지 못하는 에러를 얻었습니다. JAVASCRIPT 업데이트
:
는var viewModel;
$.getJSON('/myurl',
function (data) {
viewModel = data;
});
alert(viewModel);
$(function() {
ko.applyBindings(viewModel);
});
내가 여기 필요는 경고 상자만큼 .. 작동한다는 것입니다있어 문제가있다. 내가 그 라인을 주석다면, 그것은 작동하지 않습니다!
나는 fromJSON이 이유() 데이터가 실제로거야 때문이었다에 사용할 서버에서 json으로오고 있습니다.또한 귀하의 바이올린에서 드롭 다운 목록에 아무 것도 표시되지 않습니다 .. – jzm
@rudeovskizebear 귀하의 업데이트를보고 옵션이 아무것도 표시되지 않습니다. 나는 바이올린 (그것에 접근하는 데 어려움을 겪고있는)에서 일하고 나의 대답을 곧 업데이트 할 것이다. – ryadavilli
@rudeovskizebear 지금 업데이트 된 답변을 참조하십시오. – ryadavilli