2017-01-29 21 views
0

我是一名新開發人員,在我的工作中繼承此代碼作爲我的第一個項目。這段代碼在應用程序中工作,但是當我嘗試手動添加它的值時,我不明白爲什麼。繼承的Knockout模板,我無法工作

模板代碼是預先存在的部分,剩下的就是我試圖實現它。

下面是代碼:

<p>Rate: <strong data-bind="text: rate"></strong></p> 
<div data-bind="template: { name: 'percentage-template', data: { data: rate, enable: secure }}"></div> 

<script type="text/html" id="percentage-template"> 
    <div class="input-group"> 
     <input type="text" 
     class="form-control" 
     data-bind="vale: data, 
       precision: precision || 2, 
       isPercent: isPercent || true, 
       enable: enable || true" 
     /> 
     <span class="input-group-addon">%</span> 
    </div> 
</script> 

<script type="text/javascript"> 
    function MyViewModel() {  
     this.rate = ko.observable(.01); 
     this.secure = ko.observable(false); 
    } 

    ko.applyBindings(new MyViewModel()); 
</script> 

這裏是在應用程序的工作的視圖部分:

<div data-bind="template: { name: 'percentage-template', data: {data: Form.Current.Rate, enable: ViewSecurity.Edit}}"></div> 

的問題是,使用模板的情況下,輸入框保持空白和不顯示費率。

編輯:我改變了自定義的模板值範圍內結合,感謝布賴恩 我也取得了價值可觀測量

+0

不是真的跟着你的問題,而應該評級和/或安全是可觀察的?第二個數字不是默認的挖空綁定,所以必須有一個自定義的數字綁定,你可以顯示出來嗎? –

+0

謝謝布萊恩。我過去曾試圖與那些沒有成功的可觀察者,但我應該讓他們離開這種方式..! 我沒有意識到數字不是一個本地綁定,我發現它,但它是66行長。讓我深入研究,看看。 – user3142554

回答

0

模板設置綁定到「數據」,並在你的情況你傳遞'rate'綁定到綁定中,但'rate'沒有設置爲可觀察值,因此它只會從模型中獲得初始值,並且不會有雙向綁定來捕獲更新。如果您想要在文本輸入中輸入更改以更新模型中的「費率」變量,那麼您需要將費率設置爲可觀察值。

this.rate = ko.observable(.01);