2012-02-21 27 views
1

我正嘗試在簡單的Web應用程序中使用Knockout js。 這裏是我的虛擬javascript代碼:Knockout JS:ko.applyBindings不是函數

function MainViewModel() { 
    this.myText = ko.observable('Hello world'); 
} 
var MainViewModelInstance = new MainViewModel(); 
ko.applyBindings(MainViewModelInstance); 

但是當我運行中的index.html,調試控制檯說「ko.applyBindings不是一個函數」!

幫助! 謝謝

回答

4

您的源代碼中沒有包含knockout.js庫的鏈接,或者鏈接有誤。解決這個問題,它會工作。

<script src="/scripts/knockout-2.0.0.js" type="text/javascript"></script> 

凡/ scripts目錄就是knockoutjs駐留在服務器上的位置。

編輯

這裏是你的代碼工作的一個例子。

<html> 
    <head> 
     <script src="knockout-2.0.0.js" type="text/javascript"></script> 
    </head> 
    <body> 

     <script type="text/javascript"> 

      function MainViewModel() { 
       this.myText = ko.observable('Hello world'); 
      } 
      var MainViewModelInstance = new MainViewModel(); 
      ko.applyBindings(MainViewModelInstance); 

     </script> 

    </body> 
</html> 
+0

我敢肯定,我包括圖書館和路徑是正確的。實際上,如果我在最後一行中對applyBindings()進行評論,那麼在第二行中沒有錯誤,我稱之爲ko.observable()。爲什麼?!?! – user212421 2012-02-22 07:50:15

+1

由於未執行MainViewModel函數,因此未執行對ko.observable的調用。這就是爲什麼當你註釋掉該行時沒有錯誤。 – 2012-02-22 21:45:39

+0

原來,瀏覽器的JavaScript引擎無法識別調用「document.createComment()」作爲JavaScript函數。我評論說,在Knockout Js中打電話,現在一切正常......太奇怪了! – user212421 2012-02-23 22:02:19