我正在尝试在我的主页上动态加载 div 的内容,并从控制器返回部分视图。该 div 的内容可能会根据用户在主视图上单击的按钮而改变。部分视图有自己的淘汰视图模型,我想将其绑定到 div(或部分视图中的子 div)。
这是我尝试过的...
我的主页上有一个主要的淘汰赛 ViewModel...
window.mainpage.viewmodel = (function (ko, datacontext) {
var self = this;
self.someValue = ko.observable("test value");
self.childViewModel = ko.observable();
return {
someValue: someValue,
childViewModel: childViewModel
};
})(ko, window.mainpage.datacontext);
$(document).ready(function () {
var viewModel = window.mainpage.viewmodel;
ko.applyBindings(viewModel);
}
然后我的视图有两个 div,一个绑定到 someValue,另一个绑定到 childViewModel....
<div data-bind="text: someValue"></div>
<div id="subContent" data-bind="with: childViewModel">
</div>
当我单击表单上的按钮时,我希望它将“subContent”div 的内容设置为 Partial View 控制器操作的结果......
$('#subContent').load('/Test/GetPage', data, function (response, status, xhr) {
//Do something when the partial view is loaded in #subContent
});
我的 PartialView 有它自己的 ViewModel,我已经在它自己的 js 文件中声明了它,它在局部视图中声明......
window.child.subviewmodel = (function (ko, datacontext) {
var self = this;
self.someChildValue = ko.observable("test child value");
return {
someChildValue: someChildValue
};
})(ko, window.child.datacontext);
我的问题是在哪里创建我的子 ViewModel 以及如何将它分配给主 ViewModel 上的 childViewModel 属性。
另外,我应该怎么做才能确保每次重新加载子内容时正确清除内存使用量?
谁能建议实现这一目标的最佳方法?