6

numaralı telefonu kullanıyorum öğesini seçiyorum UI-Select kullanıyorum, etiketlerden herhangi birinin tıklatılmasının onları yapmak istemediğini fark ettim. Tıklandığında kaldırılmasını isterim. Açısal UI

ng-click="$selectMultiple.removeChoice($index)" 

Bunu, bu kadar "maç-multiple.tpl.html" kapalı ateşlenir şablonu bulduğumuz bazı kazma yapmak: incelenmesi üzerine ben 'x' kapalı aşağıdaki yangınlar fark ettim. Ng-tıklamasını girdiye kopyaladım.
<span class="ui-select-match"> 
    <span ng-repeat="$item in $select.selected"> 
    <span 
     class="ui-select-match-item btn btn-default btn-xs" 
     tabindex="-1" 
     type="button" 
     ng-disabled="$select.disabled" 

     ng-click="$selectMultiple.removeChoice($index)" 
     ng-class="{'btn-primary':$selectMultiple.activeMatchIndex === $index, 'select-locked':$select.isLocked(this, $index)}" 
     ui-select-sort="$select.selected"> 
     <span class="close ui-select-match-close" ng-hide="$select.disabled" ng-click="$selectMultiple.removeChoice($index)">&nbsp;&times;</span> 
    <span uis-transclude-append></span> 
    </span> 
</span> 
</span> 

Bu

enter image description here

DÜZENLEME (resme bakın) etiketi sistemini kırdı - aşağıdakileri çalıştı, hata gitti ama tıklama hiçbir şey yapmıyor.

 ng-click="$selectMultiple.activeMatchIndex.removeChoice($index)" 

nasıl 'X' aksine etiketi ng-cick ekleyebilirsiniz ?

cevap

3

Doğru satırlardasınız. Tam kodunuzu (Köşeli kod dahil) göremiyorum, bu yüzden neden çalışmadığını görmek zor, ancak this Fiddle bir çalışma örneği gösteriyor - ui seçimine birkaç isim ekledikten sonra adın herhangi bir yerine tıklayın (yalnızca 'x') onları kaldırmak için.

ui seçim olarak yapılandırılmış aşağıdaki gibidir:

<ui-select multiple tagging ng-model="vm.selected" theme="bootstrap"> 
    <ui-select-match placeholder="Pick one...">{{$item.value}}</ui-select-match> 
    <ui-select-choices repeat="val in vm.values | filter: $select.search track by val.value"> 
     <div ng-bind="val.value | highlight: $select.search"></div> 
    </ui-select-choices> 
    </ui-select> 

Aşağıdaki kod ng tıklama olayı ile ilgili olan bir özel bir varsayılan 'önyükleme/eşleme multiple.tpl.html' şablonunu geçersiz kılar Üst açıklık (sizin yaptığınız gibi) - ng-click="$selectMultiple.activeMatchIndex = $index;" aralığındaki bir tıklama zaten vardı, bu kaldırmak ve yerine ng-click="$selectMultiple.removeChoice($index)" ile değiştirmek zorunda kaldı. Bu kod bloğu, bu özel şablonu varsayılan olarak kullanmak yerine ui seçimini bildirir:

app.run(['$templateCache', function($templateCache) { 
    $templateCache.put('bootstrap/match-multiple.tpl.html', 
    '<span class="ui-select-match">' + 
     '<span ng-repeat="$item in $select.selected track by $index">' + 
      '<span ' + 
       'ng-click="$selectMultiple.removeChoice($index)" ' + 
       'class="ui-select-match-item btn btn-default btn-xs" ' + 
       'tabindex="-1" ' + 
       'type="button" ' + 
       'ng-disabled="$select.disabled" ' + 
       'ng-class="{\'btn-primary\':$selectMultiple.activeMatchIndex === $index, \'select-locked\':$select.isLocked(this, $index)}" ' + 
       'ui-select-sort="$select.selected">' + 
      '<span class="close ui-select-match-close" ng-hide="$select.disabled" ng-click="$selectMultiple.removeChoice($index)">&nbsp;&times;</span>' + 
      '<span uis-transclude-append></span>' + 
     '</span>' + 
     '</span>' + 
    '</span>'); 
}]); 
+0

Bu soruna bakmak için zaman ayırdığınız için teşekkürler, ancak oldukça eski. Şimdi React topraklarında yüzüyorum: D hah – Mintberry

+2

Endişelenme yok :) çok az görüşe sahipti, umarım cevap başkalarına da yardım eder –