2016-07-21 5 views
0

Ich habe eine einfache ng-Wiederholung mit einem Filter darauf. Jedoch in meinem HTML sehe ich meine Logik im HTML. Gibt es eine Möglichkeit, dies zu verbergen?Versteckt ng-Repeat Ausdruck und Filter Logik in HTML?

Wenn ich auf meine Seite schaue, haben alle meine wiederholten divs den obigen logischen Ausdruck in ihnen. Gibt es eine Richtlinie oder Best Practice, um dies zu verbergen?

Antwort

2

<div ng-repeat="row in rowData.players| filter:{name:'Dan'})"> {{row.name}} </div>

Versuchen einfache Anführungszeichen statt doppelte Anführungszeichen verwenden.

1

Anstatt in Ihrer HTML-Vorlage zu filtern, können Sie eine Bereichsvariable erstellen, die diese gefilterten Werte enthält, und dann über sie iterieren. Auf diese Weise sehen Benutzer, die Ihr DOM überprüfen, die gefilterten Werte nicht.

Zum Beispiel in Ihrem Controller, könnten Sie haben:

.controller('SomeCtrl', function($scope, $filter) { 

    $scope.rowData.players = $filter('someFilter')(filterArgs1, filterArgs2, etc); 

}) 
1

Sie haben eine extra ")" am Ende Ihres:

"row in rowData.players| filter:{name:'Dan'})" 

nicht sicher, ob es dort zu sein hat oder nicht, schau es dir an, auch @Divyesh hat Recht, versuche einfache Ticks '' anstelle von '' zu verwenden, wenn sie bereits von doble ticks

beigefügt sind