2017-09-17 29 views
0

我從已加載的列表中取出一些數據並將它們添加到可觀察數組中,我想將它們顯示在另一個列表中,除非數據未顯示在屏幕上 這裏的代碼可觀察陣列中的項目未添加到列表KO

self.addData = function (val) { 
 
     
 
     self.finalList().push(val); 
 

 
     alert(val.LATIN_DESC); 
 

 
    }
<div class="container"> 
 
          <h2> Added servcies</h2> 
 
          <div class="row" style="height:20vh; overflow:auto;"> 
 
           <div class="col-md-3"> 
 
            <ul data-bind="foreach:finalList"> 
 
             <li class="list-group-item"> 
 
              <div class="col-xs-3"> 
 
               <b data-bind="text:LATIN_DESC , value: SYS_KEY"></b> 
 
              </div> 
 
             </li> 
 
            </ul> 
 
            
 
           </div> 
 
          </div> 
 
          
 
         </div>
無論 observable array目前持有

回答

1

究竟是什麼@connexo關於observableArray,還有當綁定b元素時,使用文本而不是值是有意義的,因爲b元素不會改變值。


 
function TestVM(){ 
 
    var self = this; 
 
    self.finalList = ko.observableArray(); 
 
    self.addData = function (val) { 
 
     
 
     self.finalList.push(val); 
 

 
     alert(val.LATIN_DESC); 
 

 
    } 
 
    
 
    self.addData({LATIN_DESC: 'RR', SYS_KEY: 'GG'}); 
 
} 
 
    
 
ko.applyBindings(new TestVM())
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script> 
 
<div class="container"> 
 
          <h2> Added servcies</h2> 
 
          <div class="row" style="height:20vh; overflow:auto;"> 
 
           <div class="col-md-3"> 
 
            <ul data-bind="foreach:finalList"> 
 
             <li class="list-group-item"> 
 
              <div class="col-xs-3"> 
 
               <b data-bind="text:LATIN_DESC +'-'+ SYS_KEY"></b> 
 
              </div> 
 
             </li> 
 
            </ul> 
 
            
 
           </div> 
 
          </div> 
 
          
 
         </div>

1

self.finalList()回報,然後self.finalList().push(val)推的值返回的結果(使用JavaScript的本地Array.Prototype.push()方法),而不是可觀察數組本身。改爲使用Knockout可觀察陣列的推式方法:

self.finalList.push(val)