2016-04-05 16 views
0

Also, ich bin hier ein logisches Problem konfrontiert, und ich bin von einem Objekt iteriert meine Liste <options> in <select>AngularJS ändern Ansichten zwischen Kollektionsteile

Nun zu schaffen, jetzt muss ich die Ansichten wechseln für den Korrespondenten ausgewählte Option

<div> 
    <select class="select" 
     name="singleSelect" 
     ng-model="$ctrl.currentViewOption"> 
     <option value="">Choose a option</option> 
     <option ng-selected="$ctrl.selected(item)" 
      value="{{item.token}}" 
      ng-repeat="item in $ctrl.listOptions">{{'Option '}} {{ $index + 1 }}</option> 
    </select> 
    <code>selection={{$ctrl.currentViewOption}}</code> 
    <hr/> 
    <div class="animate-switch-container" 
     ng-switch on="$ctrl.currentViewOption"> 
     <div class="animate-switch" ng-switch-when="item.token === correspondentView">view1</div> 
     <div class="animate-switch" ng-switch-when="">view2</div> 
     <div class="animate-switch" ng-switch-default>default</div> 
    </div> 
</div> 

die Struktur jeder Option ist:

{ "Token": "56e6fe65712ed797f7014d40", "Status": 3, "createdAt": "someDate", "updatedAt": "someDate", "content": [ "diese alle Daten enthalten eine Option Ansicht zu machen"] }

Also, was kann ich tun, auf mein Controller, um Ansichten basierend auf jedem dieser Elemente zu wechseln? für jede Ansicht rendere ich Daten basierend auf content attr von diesem Objekt

Antwort

1

Der Wert, den Sie für die ng-switch-when-Anweisung festlegen, ist eine Zeichenfolge, kein Ausdruck. Siehe https://docs.angularjs.org/api/ng/directive/ngSwitch

Wenn Sie möchten, basierend wechseln können, auf einer Eigenschaft, die Inhalte zum Beispiel der currentViewOption, müßten Sie verwenden so etwas wie:

<div class="animate-switch-container" 
    ng-switch on="$ctrl.currentViewOption.content"> 
    <div class="animate-switch" ng-switch-when="stringValueNecessaryToShowView1">view1</div> 
    <div class="animate-switch" ng-switch-when="stringValueNecessaryToShowView2">view2</div> 
    <div class="animate-switch" ng-switch-default>default</div> 
</div> 

In diesem Beispiel, wenn die currentViewOption.content == 'stringValueNecessaryToShowView1', dann wird view1 angezeigt.

Verwandte Themen