2012-05-29 80 views
0

我剛開始閱讀,並經過一些knokout教程,真的很喜歡它,但不能自己做一個簡單的例子。下面是HTML代碼新手開始knokout問題

<input id="Button2" type="button" value="+" data-bind="click:increment" /> 
<input id="Text1" type="text" data-bind="text:foo" /> 

和JS代碼:

<script type="text/javascript"> 
    function AppViewModel() { 
     this.foo = ko.observable('0'); 
     this.increment = function() { 
      alert(foo); 
      foo += 1; 
     }; 
    } 
    ko.applyBindings(new AppViewModel()); 


</script> 

基本上我想通過點擊一個按鈕,僅僅指剛增加一個文本框的值。我也在頭文件中包含以下js文件:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script> 
    <script src="Scripts/knockout-2.1.0.debug.js" type="text/javascript"> 

我還缺少什麼?任何幫助將不勝感激

回答

1

您正在輸入上使用文本綁定。設置輸入文本不會做任何明顯的事情。

您需要使用值綁定。像這樣。

<input id="Button2" type="button" value="+" data-bind="click:increment" /> 
<input id="Text1" type="text" data-bind="value:foo" /> 

您還需要通過調用observable函數來分配foo元素。

function AppViewModel() { 
    var self = this; 
    this.foo = ko.observable(0); 
    this.increment = function() { 
     self.foo(self.foo() + 1); 
    }; 
} 

http://jsfiddle.net/madcapnmckay/wdVYe/

希望這有助於。

+0

偉大的我在jsfiddle中檢查,但不能讓它在我的應用程序上工作。在Jquery旁邊,我應該在頁面上包含哪個外部js文件?再次感謝您的幫助 –

+0

這就是您所需要的。 firebug/chrome開發工具控制檯顯示什麼錯誤? – madcapnmckay

+0

沒有錯誤,但它什麼也沒做。即使在加載文本框的值不是0,頁面是一個aspx。它不應該是一個問題 –