SORU
17 EKİM 2012, ÇARŞAMBA


Nasıl dinamik olarak seçenekleri değiştirirken YANİ seçme sorunu düzeltmek için

Aynı seçenekler var seçer bir dizi var. O zaman farklı bir seçin) seçili olan seçenekler görünmüyor böylece bir filtre ile bu seçenekleri işletiyorum. this jsFiddle (non-IE) ne demek istediğimi görmek için. Temelde seçer arasında birden çok kez seçilmiş olmanın aynı seçeneği önlemeye çalışıyorum

Ne yaptım şimdi, YANİ bir sorunu vardır. YANİ o keman (sadece Internet Explorer 9, bir önceki sürüm bende de aynı sorun var galiba denedim) açın. AAA en son seçin ve değiştirin. 3 Diğer görüntüler ne değişti seçer her ne kadar dikkat edin. Onlar için model değişmedi, ama IE seçenekleri değiştirildiğinde bir şekilde tüketiyor.

Benim ilk soru, bu işte bir terslik işlevselliği genel olarak yapıyorum? Bu aynı kod Krom istediğim tam olarak yok, ama ben sadece olmaması gereken bir şey mi yapıyorum? FF Nasıl YANİ bu etrafında alabilir miyim? Ve re-set modeli temizlemek biraz zaman aşımı denedim, ama işler bir fark etrafında atladı. Eğer iyi, temiz, düşük etkili bunun için geçici çözüm varsa merak ediyorum.

Herhangi bir yardım çok mutluluk duyacağız. Teşekkürler.

--GÜNCELLEME--

Bu fixed version 1.3.3 kendisi aşağıda A. S. Ranjan's solution kullanarak Açısal olmuştur. 1.3.3 yeni keman görmek: http://jsfiddle.net/m2ytyapv/

//dummy code so I can post the edit

CEVAP
14 Mayıs 2013, Salı


Aynı sorunu geçen gece yaşadım ve aklıma gelen her şeyi atma sonra seçer kullanırken YANİ sadece güncelleme filtreleri işlemek istemeyen sonuca vardım.

Benim çözüm bu gibi görünmek için seçer değiştirmek için:

 <select class="selectList" ng-repeat="currId in selectedIds" ng-model="selectedIds[$index]"  ng-options="currOption.id as currOption.value for currOption in myObj | myfilter:selectedIds:$index" data-ng-change="fixIE()"></select>

Onlar şimdi bir sınıf var ve bir ng-değiştir onları. Sonra kumandanızı, bu eğlenceli kod biraz:

$scope.fixIE = function(){
    //code to check if IE so the other browsers don't get this ugly hack.
    var selectLists = document.querySelectorAll(".selectList");
    for(var x = 0;x  < selectLists.length; x  ){
        selectLists[x].parentNode.insertBefore(selectLists[x], selectLists[x]);
    }       
};

Ne DOM öğeleri dışarı rip ve bunların yerine aynı konumda. Burada çalışan bir kemanjsFiddle

Javascript dahil etmedi denedim diğer bazı çözümler seçme ekranı/görünürlük geçmek gibi şeyler vardı. Onların zİndex olması taşındı. Kesin sabit olan tek şey bu kod parçası oldu.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bobbylee Budde

    Bobbylee Bud

    13 ŞUBAT 2011
  • glowpinkstah

    glowpinkstah

    16 Mayıs 2006
  • GoogleTechTalks

    GoogleTechTa

    15 AĞUSTOS 2007