0
KnockoutJS with WebApi. 사용자 지정 바인딩을 시도 할 때 사용자 지정 바인딩 함수에 바인딩 데이터를 전달할 수 없습니다.KnockoutJS, WebApi, 사용자 지정 바인딩을 사용할 때 valueAccessor에 값이 없습니다.
나는 이틀 동안 내 머리를 두드리는 중이다. 확실히 여기에 뭔가 빠져있다.
모든 가이드 라인, 기사 또는 샘플 코드는 크게 감사하겠습니다. 고마워.
<script>
function ViewModel() {
var self = this;
self.items = ko.observableArray();
// This is getting data, and tested have data returned.
var baseUri = 'api/items';
$.getJSON(baseUri, self.items);
}
$(document).ready(function() {
ko.bindingHandlers.testBinding = {
init: function (element, valueAccessor) {
var value = valueAccessor();
var valueUnwrapped = ko.utils.unwrapObservable(value);
// This is always 0.
alert(valueUnwrapped.length);
},
update: function (element, valueAccessor) {
var value = valueAccessor();
var valueUnwrapped = ko.utils.unwrapObservable(value);
// This is always 0.
alert(valueUnwrapped.length);
}
};
// Binding to Web Api data.
ko.applyBindings(new ViewModel());
// Test it with static data, and custom binding works. The length displayed 2.
//var viewModel = {
// items: ko.observableArray([{name: "Bob1"}, {name: "Bob2"}])
//};
//ko.applyBindings(viewModel);
});
</script>
<div data-bind="testBinding: items"></div>
비동기 ..
업데이트 번 0이어야하고 다음 번에 정확한 길이를 반환! Doh !!! '$ .ajaxSetup ({async : false});을 사용했습니다. 결국 문제를 해결할 수 있습니다. 고마워. –
대신 http://jsfiddle.net/SVQhR/1/ – Anders
처럼 데이터를로드하는 데 시간이 얼마나 걸릴지 모르겠으므로 턴 비동기를 해제하면 내 경우에 더 좋을 것이라고 생각합니다. –