2016-08-23 3 views
0

Wie vereinfacht man Vorlage in angularjs? Hier gibt es drei verschiedene Varianten, die innerhalb von podgruzki-Datenobjekten liegen, aber abhängig von verschiedenen Objekten, die IF mit unterschiedlichen Eigenschaftensätzen geladen sind. Ist es möglich, sowohl die Vorlage zu vereinfachenWie vereinfacht man die Vorlage?

<div class="suggest" ng-show="showSuggest" ng-if="$ctrl.Name == 'A'"> 
    <ul class="height-list"> 
     <li ng-repeat="node in $ctrl.Searched()" ng-mousedown="add(this)"> 
      <span ng-attr-title="{{node.a}}">{{node.a}}</span> 
     </li> 
    </ul> 
</div> 
<div class="suggest" ng-show="showSuggest" ng-if="$ctrl.Name == 'B'"> 
    <ul class="height-list"> 
     <li ng-repeat="node in $ctrl.Searched() " ng-mousedown="add(this)"> 
      <span ng-attr-title="{{node.b}}">{{node.b}}</span> 
     </li> 
    </ul> 
</div> 
<div class="suggest" ng-show="showSuggest" ng-if="$ctrl.Name == 'C'"> 
    <ul class="height-list"> 
     <li ng-repeat="node in $ctrl.Searched()" ng-mousedown="add(this)"> 
      <span ng-attr-title="{{node.C}}">{{node.C}}</span> 
     </li> 
    </ul> 
</div> 

Antwort

1

Angenommen, Sie normalisieren Ihre node und name 1 bis 1. Also, wenn Ihr Controller-Namen „a“ oder „Foo“ ist, dann ist Ihr node eine Eigenschaft haben, genannt a oder Foo.

Dann können Sie Ihre Vorlage auf folgendes reduzieren:

<div class="suggest" ng-show="showSuggest"> 
    <ul class="height-list"> 
     <li ng-repeat="node in $ctrl.Searched()" ng-mousedown="add(this)"> 
      <span ng-attr-title="{{node[$ctrl.Name]}}">{{node[$ctrl.Name]}}</span> 
     </li> 
    </ul> 
</div> 
+0

Keine viele verschiedene Eigenschaften nicht bekommen. – Vladimir

+0

Ja, das ist das M in MVC. –

+0

@Vladimir, können Sie erweitern, was Sie bedeuten: 'Nein, nicht viele verschiedene Eigenschaften zu bekommen.' – Martin

Verwandte Themen