2012-11-20 59 views
0

閱讀knockoutJs tutorial並且無法使其工作。在第一頁上,使用了第一種方法,在第二頁上使用了第二種方法來創建模型。但第二種方法不起作用。可能是什麼問題呢?在兩種方法中聲明ViewModel

第一種方法

var AppViewModel { 
    this.firstName = 'Bob', 
    this.lastName = 'Smith' 
}; 

第二種方法

function AppViewModel() { 
    this.firstName = 'Bob'; 
    this.lastName = 'Smith'; 
} 

的Html部低於:

<body> 

    <span data-bind="text: firstName"></span> 



    <script type="text/javascript"> 
     ko.applyBindings(AppViewModel); 
    </script> 
</body> 

這適用於第一種方法,但第二種方法噸hrows錯誤:

Uncaught Error: Unable to parse bindings. Message: ReferenceError: firstName is not defined; Bindings value: text: firstName

回答

4

在第一種方法中,您定義了一個對象。在第二種方法中,你定義一個類的構造函數,因此你必須使用new關鍵字創建類的實例:

<body> 
    <span data-bind="text: firstName"></span> 

    <script type="text/javascript"> 
     ko.applyBindings(new AppViewModel()); 
    </script> 
</body> 
+0

首先是一個匿名對象,第二個是需要一個實例,使其工作類。我明白你的意思 – codingbiz