2014-02-13 76 views
0
<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <meta name="viewport" content="width=device-width" /> 
    <title>Index</title> 
    <link href="/Content/site.css" rel="stylesheet"/> 

    <script src="/Scripts/modernizr-2.6.2.js"></script> 
<script src="/Scripts/jquery-1.8.2.js"></script> 
<script src="/Scripts/knockout-2.2.0.debug.js"></script> 


</head> 
<body> 


<h2>Index</h2> 






    <script type="text/javascript"> 
     // This is a simple *viewmodel* - JavaScript that defines the data and behavior of your UI 
     function AppViewModel() { 
      this.firstName = "Bert"; 
      this.lastName = "Bertington"; 
     } 

     // Activates knockout.js 
     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> 

上述代碼不會返回我選擇的姓和名。我試圖改變淘汰賽淘汰賽2.2.0.js,但不會工作。我究竟做錯了什麼?淘汰賽腳本不能正常工作

回答

3

它不起作用的原因是,你要求knockout在要綁定的DOM元素被加載之前應用綁定,所以當knockout遍歷DOM期望的數據綁定時,它不會找到你的p元素(它們還沒有被加載,因爲它們被放置在腳本標籤之後)。

將腳本標記移動到主體的末尾,或者確保在DOM完成加載之前,通過運行DOMContentLoaded事件中調用ko.applyBindings的代碼,代碼不會運行。

+0

啊,工作。謝謝回覆。 – user3306826