无法进行淘汰赛

chi*_*ity 9 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>
Run Code Online (Sandbox Code Playgroud)

我的viewmodel - 包含在myTasks.js文件中:

function AppViewModel() {
    this.firstName = "Bert";
    this.lastName = "Bertington";
}
ko.applyBindings(new AppViewModel());
Run Code Online (Sandbox Code Playgroud)

我得到的是:

First name:

Last name: 
Run Code Online (Sandbox Code Playgroud)

上面的代码是第一个knockoutjs教程中使用的代码.

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

u_m*_*der 19

包裹你淘汰代码 $( document ).ready( function() {} );

$( document ).ready( function() {
    function AppViewModel() {
        this.firstName = "Bert";
        this.lastName = "Bertington";
    }
    ko.applyBindings(new AppViewModel());
} );
Run Code Online (Sandbox Code Playgroud)

并且不要忘记包含jquery本身.


小智 17

我知道很久以前就回答了这个问题,但这是Google在搜索此问题的解决方案时最热门的搜索之一.你应该不会有使用jQuery与knockout.js如被接受的答案暗示.更好的解决方案是将引用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>
Run Code Online (Sandbox Code Playgroud)

这应该允许您的viewmodel代码工作,而不必包含jQuery.