我是淘汰赛中的一个完整的菜鸟,我从一开始就面临着一个问题。我已经完成了安装指南中描述的所有内容,但我无法使其正常工作。
我的HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
<script type='text/javascript' src='js/knockout-3.0.0.js'></script>
<script type='text/javascript' src='js/myTasks.js'></script>
<TITLE>Your Tasks</TITLE>
</HEAD>
<BODY>
<p>First name: <strong data-bind="text: firstName"></strong></p>
<p>Last name: <strong data-bind="text: lastName"></strong></p>
</BODY>
</HTML>
我的viewmodel - 包含在myTasks.js
文件中:
function AppViewModel() {
this.firstName = "Bert";
this.lastName = "Bertington";
}
ko.applyBindings(new AppViewModel());
我得到的是:
First name:
Last name:
上面的代码是第一个knockoutjs教程中使用的代码。
为什么我无法运行它?我知道我错过了一些非常小的东西,但我无法发现它。
答案 0 :(得分:18)
在$( document ).ready( function() {} );
$( document ).ready( function() {
function AppViewModel() {
this.firstName = "Bert";
this.lastName = "Bertington";
}
ko.applyBindings(new AppViewModel());
} );
不要忘记包含jquery本身。
答案 1 :(得分:17)
我知道很久以前就回答了这个问题,但在搜索此问题的解决方案时,它是Google上搜索量最高的搜索之一。您应该不必须使用带有knockout.js的JQuery,如接受的答案所暗示的那样。更好的解决方案是将引用myTask.js的脚本标记移动到正文的底部:
<BODY>
<p>First name: <strong data-bind="text: firstName"></strong></p>
<p>Last name: <strong data-bind="text: lastName"></strong></p>
<script type='text/javascript' src='js/myTasks.js'></script>
</BODY>
这应该允许您的viewmodel代码工作,而不必包含jQuery。