2010-11-06 14 views
8

aşağıdaki alanları ile bir JsonStore var kopyalar:Kontrol benzer kayıt önlemek için deposunda varsa

id 
date 
time 
type 

Ben üç alan toplayan bir form var (date, time, type) ve yeni bir kayıt ekler mağazaya (mağazaya ayrı ayrı kaydediyorum). Yinelenen girişleri önlemek için mağazada aynı alan değer kombinasyonuna sahip bir kaydın zaten mevcut olup olmadığını kontrol etmek istiyorum.

Böyle başka mağazada yinelenen kimlikleri kontrol başarmış:

find = DepartmentMemberStore.find('member_id', value_from_form); 
if (find != -1) { 
    // popup error window 
    return; 
} else { 
    // add new record to store 
} 

Ben eğer birden alan değerleri maç izleyecek bir mağaza nasıl kontrol edileceğini bilmiyorum.

cevap

16

Bu durum için Store'un findBy(Function fn, [Object scope], [Number startIndex]) kullandım. Mağazadaki her kayıt için fn işlevi çağrılır ve geçerli kayıt ile karşılık gelen kimliği işleve iletilir. Böylece, her form alanına karşı karşılaştırmak için geçerli kaydın alanlarını kullanabilirsiniz. Tam olarak ne gerekli

var recordIndex = DepartmentMemberStore.findBy(
    function(record, id){ 
     if(record.get('date') === date_from_form && 
      record.get('time') === time_from_form && 
      record.get('type') === type_from_form){ 
       return true; // a record with this data exists 
     } 
     return false; // there is no record in the store with this data 
    } 
); 

if(recordIndex != -1){ 
    alert("We have a duplicate, abort!"); 
} 
+1

:

İşte sizin durumunuz için bir örnek verilmiştir. Teşekkür ederim! –

İlgili konular