2
我開始學習knockoutjs,並且遇到了一個錯誤。 Aptana編輯器在以下位置顯示錯誤:Knockoutjs不工作
data-bind: ....
標籤的屬性抱怨它是專有標籤。我已經確保包含所有必需的JavaScript文件,並且我已經檢查了以前的問題:knockoutjs template not working。 這裏是我的代碼:
<!DOCTYPE html>
<html>
<head>
<script type='text/javascript' src='jquery-1.8.2.min.js'></script>
<script src='jquery.tmpl.min.js' type='text/javascript'></script>
<script src='knockout-2.2.0.js' type='text/javascript'></script>
</head>
<body>
<script>
function AppViewModel() {
this.firstName = "Bert";
this.lastName = "Bertington";
}
ko.applyBindings(new AppViewModel());
</script>
<p>First name: <strong data-bind="text: firstName"></strong></p>
<p>Last name: <strong data-bind="text: lastName"></strong></p>
</body>
</html>
即使忽略集錦,並希望該瀏覽器將顯示它我還是什麼也得不到了。我使用Firefox 16,但我也嘗試過IE 8,但無濟於事。
偉大的工作,但爲什麼?爲什麼腳本應該在標記之後?我將要寫的所有腳本應該如何? –
在腳本執行之前DOM尚未加載。另一種選擇是將其封裝在[jQuery的'ready'](http://api.jquery.com/ready/)函數中。 '$(function(){ko.applyBindings(new AppViewModel());});' – sghill
內嵌您標記的腳本標記與瀏覽器對該標記的處理同步執行,所以'sghill'指出DOM元素不是準備好當你嘗試應用綁定。通過將腳本移動到底部,可以確保您定位的DOM元素可用。或者,使用jQuery'ready'回調將確保您的代碼在加載DOM之前不會運行。請參閱http://knockoutjs.com/documentation/observables.html ...搜索Activating Knockout。 –