2011-11-23 56 views
1

嘗試他們的文檔頁面上Knockout.js可能是最簡單的例子: http://knockoutjs.com/documentation/observables.htmlKnockout.js基本示例 - 是什麼導致此數據綁定失敗?

看起來像我所擁有的一切設置,如文檔要求,和我沒有得到網頁上的任何錯誤,但span應顯示「personName」的綁定 - 即「Bob」。

但是,當我運行該頁面時,所有出現的是「名稱是」。鮑勃無處可尋。

這裏是我的代碼:

<!DOCTYPE html> 

<html> 
<head> 
<title>Knockout Practice</title> 
<script type='text/javascript' src='javascript/jquery-1.6.4.js'></script> 
<script type='text/javascript' src='javascript/jquery-tmpl.js'></script> 
<script type='text/javascript' src='javascript/knockout-1.2.1.js'></script>  

<script type="text/javascript"> 

    var myViewModel = { 
    personName: 'Bob', 
    personAge: 123 
    }; 

    ko.applyBindings(myViewModel); 
</script> 

</head> 

<body> 
    The name is <span data-bind="text: personName"></span> 


</body> 

</html> 

是不是有什麼遺漏的文件中,還是我失去了一些東西?

回答

2

您需要更改腳本加載的位置。

您可以把腳本塊在HTML文檔的底部,或者你可以把它的頂部和包裹的內容在DOM就緒處理程序,如jQuery’s $ function

把腳本塊在HTML文檔的結尾確實顯示

名字是鮑勃

<span data-bind="text: personName">Bob</span>

+0

但是我現在有它在的頂部文件在標記。它說你可以將腳本放在頂部或底部 - 爲什麼它不在頂部渲染? – PhillipKregg

+0

@Phil如果你想要它在頂部,你需要把它包裝在一個處理程序中。這樣,當DOM完成加載(所有的HTML完成)調用你的代碼塊。通過將它放在最後,您可以讓整個文檔加載而不必明確地將其放入處理程序中。 – phwd

+0

好吧,看起來這個劇本只有在身體內部或身體之外 - 只有當它在底部時才起作用。我希望網站上有更完整的代碼示例。謝謝你的幫助。 – PhillipKregg