无法进行淘汰赛

时间:2013-11-23 10:43:43

标签: javascript knockout.js

我是淘汰赛中的一个完整的菜鸟,我从一开始就面临着一个问题。我已经完成了安装指南中描述的所有内容,但我无法使其正常工作。

我的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教程中使用的代码。

为什么我无法运行它?我知道我错过了一些非常小的东西,但我无法发现它。

2 个答案:

答案 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。