2016-07-28 9 views
1

Ich versuche, zwischen den Routen mit eckigen UI-Router zu wechseln. Ich habe zwei Ansichten, die genau die gleiche Funktionalität verwenden. Meine Ansicht 2 verwendet fast 90% Funktionalität aus meiner Sicht eine Beseitigung einiger der HTML-Code. Kann ich in diesem Fall den gleichen Controller für zwei Zustände verwenden?Können wir einen einzigen Controller für zwei Zustände verwenden, wenn Zustände mit dem UI-Router geändert werden

+0

Wenn Ihre restlichen 10% in einem Element gewickelt ist, könnte man es nur mit 'ng-if' auszuschalten. Die allgemeine Regel ist ein Controller für jede Ansicht, aber das ist natürlich nur eine Richtlinie. –

+0

@MuliYulzary Danke Muli. Ich werde das ausprobieren! – hhhh4

Antwort

1

Eher würde ich sagen, erstellen Sie einen einzigen Zustand, der zu kleinen zwicken Anzeige Vorlage sein wird. Sie können das Mapping irgendwo gespeichert haben, um den Namen der Vorlage zu bestimmen.

CodE

var ids = {"1": "one", "2": two} 

.state('module',{ 
    url: '/module/:id', 
    controller: 'moduleoneCtrl', 
    templateUrl: function($stateParams){ 
     return path + 'views/'+ ids[$stateParams.id] +'.html'; 
    } 
}); 
+0

Parakar Ja, ich habe JSON-Datei, wo die Zuordnungen sind. Aber wie kann man den unerwünschten HTML-Code in der neuen Ansichtsseite loswerden? – hhhh4

+1

@ hhhh4 für den unerwünschten HTML-Code in der neuen Vorlage, verwenden Sie "ng-show" oder besser, "ng-if", um sie zu "entfernen". das läuft auf den Job Ihres Controllers – CozyAzure

+0

@CozyAzure Danke. Werde es versuchen! – hhhh4