我有一个局部视图,我使用Ajax.actionlink
在viewmodel js文件中使用以下代码加载
function ViewModel() {
this.Idnum = ko.observable();
this.Name = ko.observable();
return this;
}
function InitializeViewModel() {
ViewModel = new ViewModel();
ko.applyBindings(ViewModel, $('#vBinder')[0]);
}
$(document).ready(function () {
InitializeCardViewModel();
})
vBinder是加载局部视图的Div标签的id 问题是在第一次加载时一切正常,但第二次加载会引发异常:
TypeError:ViewModel不是构造函数
任何帮助都会真诚地感激。
答案 0 :(得分:1)
您正在使用viewmodel的实例覆盖viewmodel定义:
ViewModel = new ViewModel();
首次加载IE时,它运行正常,但是一旦此行运行,在后续调用中,您再也无法执行new ViewModel()
,因为ViewModel
不再是构造函数。为viewmodel的实例使用不同的名称:
function InitializeViewModel() {
var vm = new ViewModel();
ko.applyBindings(vm, $('#vBinder')[0]);
}