2013-11-27 127 views
0

好吧,我可能做一些非常愚蠢的阻止我得到這個工作,但在這裏不用反正綁定選項列表中的選項定義爲可觀察數組。這裏是代碼:淘汰賽選擇不工作

<!DOCTYPE html> 
<html> 
    <body> 
     <script type="text/javascript" src="./knockout-3.0.0.js"></script> 
     <script type="text/javascript"> 
      var viewModel = { 
       availableQuestions : ko.observableArray(['Who?', 'What?', 'When?']) 
      }; 

      ko.applyBindings(viewModel); 
     </script> 
     <p>Questions to Ask: <select data-bind="options: availableQuestions"></select></p> 
    </body> 
</html> 

這基本上是從他們自己的例子之一,但我不能得到它的工作。選擇列表根本沒有填充。我正在使用最新版本的Chrome(31.0.1650.57),並查看了開發人員工具以查看是否有問題。我已經確認一切正在加載(即:加載,html有效)仍然沒有。我錯過了明顯的東西嗎?

這裏是小提琴:

http://jsfiddle.net/janarde/r9pCK/

編輯

由於PW喀原來是的DOM沒有綁定之前加載:

編輯 感謝Ek0nomik指出需要在標記後添加淘汰賽的東西。

<!DOCTYPE html> 
<html> 
    <body> 
     <script type="text/javascript" src="./knockout-3.0.0.js"></script> 
     <script type="text/javascript" src="jquery-1.10.2.min.js"></script> 
     <p>Questions to Ask: <select data-bind="options: availableQuestions"></select></p> 
     <script type="text/javascript"> 
      var viewModel = { 
       availableQuestions : ko.observableArray(['Who?', 'What?', 'When?']) 
      }; 

      ko.applyBindings(viewModel); 
     </script> 
    </body> 
</html> 
+0

你能舉起小提琴嗎? – DevelopmentIsMyPassion

+0

添加小提琴。在那裏工作,但不在瀏覽器中。 – janarde

+0

什麼不起作用?哪個瀏覽器不工作? – DevelopmentIsMyPassion

回答

1

你確保DOM加載你嘗試應用綁定過嗎?

<!DOCTYPE html> 
<html> 
    <head> 
     <script type="text/javascript" src="./knockout-3.0.0.js"></script> 
    </head> 
    <body> 
     <p>Questions to Ask: <select data-bind="options: availableQuestions"></select></p> 

    <script type="text/javascript"> 
     $(document).ready(function() { 
      var viewModel = { 
       availableQuestions : ko.observableArray(['Who?', 'What?', 'When?']) 
      }; 

      ko.applyBindings(viewModel); 
     }); 
    </script> 
    </body> 
</html> 
+0

就是這樣。我只需確保文檔已準備就緒。 – janarde

+1

這篇文章中的「ready」代碼是不需要的。你只需要將腳本移動到標記下面即可。 –

2

您需要確保您致電applyBindings。這裏是一個工作的jsfiddle:http://jsfiddle.net/b4wHQ/

HTML

<p>Questions to Ask: <select data-bind="options: availableQuestions"></select></p> 

的Javascript

var viewModel = { 
    availableQuestions : ko.observableArray(['Who?', 'What?', 'When?']) 
}; 

ko.applyBindings(viewModel); 
+0

謝謝你的回答,但這個例子中的約束只是缺失。儘管綁定,我仍然在瀏覽器中遇到問題。這幾乎就好像該綁定由於某種原因在瀏覽器中不起作用,但我不明白這是如何實現的。 – janarde