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>
異步!衛生署!使用'$ .ajaxSetup({async:false}); '最後解決問題。非常感謝。 –
我會改爲像http://jsfiddle.net/SVQhR/1/ – Anders
解決它我真的不知道加載數據需要多長時間,所以我認爲關閉異步會對我的情況更好。 –