2013-05-05 12 views
7

knockout foreach loop tarafından doldurulmakta olan bir masada aramak için jquery quicksearch yöntemini kullanıyorum. , hızlı arama öğesinin, sonlandırıcısından sonra başlatılması gerekir. Çeşitli yaklaşımları denedim, ancak şu ana kadar başarısız oldu.knockout - son öğe oluşturulduktan sonra kodu yürütün

'afterRender' kullanmayı denedim, ancak geçerli öğenin koleksiyonda son öğe olup olmadığını belirleyemedim, Ayrıca bir bindingHandlers kullanmayı denedim, ancak sonra bunun yerine 0 uzunlukta bir koleksiyon aldım 2005.

yüzden uzunluğu:

  1. bir foreach döngüsü son öğe bulma için en iyi yaklaşım nedir?
  2. Bu özel senaryoda bunu uygulamanın en iyi yolu nedir?

    function Container(data) { 
         var self = this; 
         self.id = ko.observable(data.Id); 
         self.code = ko.observable(data.Code); 
         self.typeName = ko.observable(data.TypeName); 
         self.parentClient = ko.observable(data.ParentClient); 
         self.client = ko.observable(data.Client); 
         self.deleteUrl = ko.computed(function() { 
          return "GetModal('/Containers/Delete/" + data.Id + "','containerModal');"; 
         }); 
         self.editUrl = ko.computed(function() { 
          return '/Containers/Edit/' + data.Id; 
         }); 
    
         self.qrUrl = ko.computed(function() { 
          return '/Qr/Index/10?entity=' + data.Id; 
         }); 
        } 
    function ContainersViewModel() { 
         var self = this; 
         self.containers = ko.observableArray([]); 
         self.counter = ko.computed(function() { 
          return self.containers().length; 
         }); 
    
         $.getJSON("/Containers/Json", function (data) { 
          var containers = $.map(data, function (item) { 
           return new Container(item); 
          }); 
    
          self.containers(containers); 
         }); 
    
        }; 
        ko.applyBindings(new ContainersViewModel()); 
    

    Çok teşekkürler:

burada manzara:

<tbody data-bind="foreach: containers"> 
     <tr> 
      <td><span data-bind="text: code"></span></td> 
      <td><span data-bind="text: typeName"></span></td> 
      <td><span data-bind="text: parentClient"></span></td> 
      <td><span data-bind="text: client"></span></td> 
      <td> 
       <a data-bind="attr: { onclick: deleteUrl }"> 
        <i class="icon-trash"></i>@delete </a> 
       | 
       <a data-bind="attr: { href: editUrl }"> 
        <i class="icon-edit"></i>@edit</a> 
       | 
       <a data-bind="attr: { href: qrUrl }" target="blank"> 
        <i class="icon-qrcode"></i> 
        @printQr 
       </a> 
      </td> 

     </tr> 
    </tbody> 

ve burada benim nakavt kodu!

Nir

cevap

İlgili konular