我创建了div并在用户点击给定链接时加载该div。 div加载后,我正在清除节点,然后应用绑定。
但是数据没有绑定到视图,它也不会产生任何错误。请检查以下代码并建议任何解决方案:
$(document).on("click", ".popup-list", function (e) {
var x = e.pageX, y = e.pageY, elm = this,
left = $(elm).offset().left + 5,
top = $(elm).offset().top + 25;var d = $("<div/>").addClass('myClass');
var url = $(this).data("url") || $(this).attr("dataurl");
d.load(url, function (response, status, xhr) {
if (status == "error") {
var msg = "<h2>Sorry! Website encounter a problem. Please contact your system administration</h2> <br/>";
d.html(msg + xhr.status + " " + xhr.statusText);
}
}).appendTo('div.myBody').css({ // d.html(tm)
top: top,
left: left,
height: 0, opacity: 0,
})
$(d).animate({ height: '346px', width: '1074px', opacity: 1 }, 800)
ViewModel.getItemList();
ViewModel.ItemList.extend({ paging: 10 })
ko.cleanNode($('.myClass'));
ko.applyBindings(ViewModel, $('.myClass')[0]);
});
这是视图模型:
var ViewModel = {
ItemList: ko.observableArray([]),
getItemList: function () {
$.ajax({
url: "myurl"',
data: "my para",
type: 'POST',
async: false,
contentType: 'application/json; charset=utf-8',
success: function (data) {
ViewModel.ItemList(data);
}
});
}
};
这是局部视图:
<ul data-bind="foreach : ItemList.currentPageData" >
<li>
<div >
<span data-bind="text:myProperty"></span>
</div>
</li>
答案 0 :(得分:0)
为什么不创建&#34;实例&#34; ViewModel?
试试这个:
var viewModel = new ViewModel();
viewModel.getItemList();
viewModel.ItemList.extend({ paging: 10 })
// ko.cleanNode($('.myClass'));
ko.applyBindings(viewModel, $('.myClass')[0]);
我评论了ko.cleanNode因为它对我没有意义,但你可以尝试任何一种方式:)
祝你好运
丹尼尔