2016-06-21 8 views
2

Ich benutze md-chips-Direktive, um Chips zu generieren.Wie auch immer ich will, dass bestimmte Chips bedingt deaktiviert werden, während andere bearbeitbar bleiben. Aber gemäß der Dokumentation können wir entweder alle Chips deaktiviert oder keine machen.Angular Material: bestimmte Chips in MD-Chips bedingt deaktivieren?

<md-chips ng-model="FruitNames" name="fruitName" readonly="$chip.notEditable == 'true'" md-max-chips="5"> 
    <md-chip-template> 
     <strong>{{$chip}}</strong> 
     <em>(fruit)</em> 
    </md-chip-template> 
    </md-chips> 

Gibt es eine Möglichkeit, Chips bedingt editierbar/nicht editierbar zu machen?

+0

Was ist die Frage? –

+2

Es scheint nicht auf einer pro-Chip-Basis möglich zu sein. –

+0

@ScottHunter Ich möchte einige Chips deaktiviert machen. –

Antwort

1

Sie können die md-chip-remove Direktive verwenden, um Ihren eigenen Chip-Remove-Button hinzuzufügen und ihn dort auf dem Chip-Level zu deaktivieren. Siehe nachstehendes Beispiel:

<md-chips ng-model="FruitNames" name="fruitName" md-max-chips="5" md-on-remove="onRemovedChip($chip)"> 
 
    <button 
 
     ng-if="!$chip.notEditable" 
 
     class="md-chip-remove ng-scope" 
 
     md-chip-remove 
 
     type="button" 
 
     aria-hidden="true" tabindex="-1"> 
 
     <md-icon md-svg-icon="md-close"></md-icon> 
 
     <span class="md-visually-hidden ng-binding">Remove</span> 
 
    </button> 
 
    <md-chip-template> 
 
     <strong>{{$chip}}</strong> 
 
     <em>(fruit)</em> 
 
    </md-chip-template> 
 
</md-chips>

Um Tags Entfernung mit Backspace zu verbieten, sollten Sie auch diese Methode, um Ihren Controller hinzuzufügen:

$scope.onRemovedChip = function(chip) { 
 
    if (chip.notEditable) { 
 
     $scope.FruitNames.push(chip); 
 
    } 
 
};

+0

es wird entweder alle Chips editierbar oder keine machen. –

+0

ja, @JagajitPrusty, du hast Recht, ich habe etwas von deinem ursprünglichen Code dort gelassen, mein Fehler. Ich habe das Snippet aktualisiert. es wird erlaubt, nur diejenigen Chips zu entfernen, die kein Attribut "nicht editierbar" auf "wahr" gesetzt haben. –