2017-06-15 74 views
0

我有一個引導模式,單擊按鈕時顯示。儘管我能夠綁定視圖中的所有值,但我無法將模式屬性與knockout綁定。無法綁定引導模型文本字段與淘汰賽

這裏是我的模態代碼:

<div class="form-group"> 
     <label class="control-label col-xs-3" for="clientName">Client Name</label> 
     <div class="col-xs-8 input-group"> 
      <input name="clientName" class="form-control" required id="clientName" data-bind="textInput: clientName"> 
     </div>       
    </div> 

這裏是我的Javascript代碼:

self.clientName = ko.observable(); 
self.onAddNewClient = function() { 
     $("#clientProperties").modal({ backdrop: "static" }); 
    }; 
self.onSaveClientProperties = function() { 
     var item=self.clientName(); 

}; 

的模式顯示出來就好了,但是當我在文本框中輸入一個值並保存它, 'clientName'變量未定義,而是具有輸入的值。 'onSaveClientProperties'是一個在模型上單擊按鈕時運行的函數。

謝謝!

回答

0

我不知道你是怎麼設置的模式,但我寫的,似乎做你想要什麼plunker: binding input in modal

<body> 


    <div id="clientProperties" class="modal fade" tabindex="-1"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
     <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span> <span class="sr-only">Close</span></button> 
      <h4 class="modal-title" id="myModalLabel">Client</h4> 
     </div> 
     <div class="modal-body"> 
      <div class="row"> 
      <div class="col-md-6"> 
       <input name="clientName" class="form-control" required id="clientName" data-bind="textInput: clientName"> 
       <a href="#" data-bind="click: onSaveClientProperties" >save</a> 
      </div> 

       </div> 
      </div> 
      </div> 
     </div> 
     </div> 
    </div> 
    </div> 

<a href="#" data-toggle="modal" data-target="#clientProperties"> Add new Client</a> 
+0

我用你的代碼替換了我的整個模態只是爲了檢查,我仍然將clientName定義爲undefined。我認爲這可能是一個綁定問題,但它正確地調用onSaveClienProperties函數,所以我想這不是綁定。 – Ravi

0

好吧,我發現這個問題。我使用VS 2015 ASP.NET單頁模板創建了我的項目,並使用Knockout-2.3.0.debug.js。首先,該資源沒有被加載,因爲它沒有包含在默認的淘汰賽捆綁包中,所以我這樣做,但它仍然沒有工作。我將我的淘汰賽更新到Knockout3.4.2,並且它工作。

不知道VS2015爲什麼沒有更新到Knockout的最新版本。