我尝试使用jquery附带的knockoutjs脚本和我自己的js文件运行一个应用程序,该文件具有与控件的ViewModel实际绑定。
每次运行应用程序时都会收到异常。
这是我系统或Visual Studio中的问题吗?我甚至尝试在浏览器中单独运行html文件,我看不到任何异常,但它阻止我执行所有其他功能主义者,这些功能主义者预计将从knockoutjs完成。
请在这方面帮助我
这是我的完整代码
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script src="Scripts/jquery-1.7.1.min.js"></script>
<script src="Scripts/knockout-2.2.0.js"></script>
<script type="text/javascript"> // Here's my data model
debugger;
function viewModel() {
this.day = ko.observable('24');
this.month = ko.observable('02');
this.year = ko.observable('2012');
this.fullDate = ko.computed(function () {
return this.day() + "/" + this.month() + "/" + this.year();
}, this);
};
ko.applyBindings(new viewModel());
</script>
</head>
<body>
<p>Day:
<input data-bind="value: day" /></p>
<p>Month:
<input data-bind="value: month" /></p>
<p>Year:
<input data-bind="value: year" /></p>
<p>The current date is <span data-bind="text: fullDate"></span></p>
</body>
</html>
答案 0 :(得分:14)
您在浏览器呈现的html之前调用了applyBindings。您必须将脚本标记移动到页面底部或将代码放入文档就绪处理程序:
<script type="text/javascript">
$(function(){
debugger;
function viewModel() {
this.day = ko.observable('24');
this.month = ko.observable('02');
this.year = ko.observable('2012');
this.fullDate = ko.computed(function () {
return this.day() + "/" + this.month() + "/" + this.year();
}, this);
};
ko.applyBindings(new viewModel());
});
</script>