2017-08-28 2 views
1

Ich möchte jemand Hilfe, wie Sie die Ansicht in einem Übergang ändern. Mein Problem ist, dass ich eine Ansicht dynamisch laden muss. So erstelle ich eine neue Ansicht (dies scheint zu funktionieren):

var viewname = 'view-'+Date.now(); 
var element = angular.element(document.querySelector('#view-container')); 
var scope = element.scope(); 
var elementString = '<div id="'+viewname+'" ui-view="'+viewname+'" class="viewunique"></div>'; 
$compile(element.append(elementString))(scope); 

Dies wird den Blick auf die $view Variable hinzufügen und scheint zu funktionieren.

Meine Frage ist: Wie kann ich diese neue Ansicht in einer Statechange verwenden. Ich habe versucht, den $ Übergang $ mit $ zu() wie:.

$transitions.onStart({}, function($transition$) { 
    $transition$.$to().views = { 
     templateUrl : templateUrl 
    }; 
}); 

wo viewname der Name der erzeugten Ansicht ist, und templateUrl ist die richtige Vorlage. Die Vorlage wird ihren eigenen Controller und Zeug haben. Dies überschreibt die Ansicht für diesen Zustand, aber funktioniert nicht wirklich oder tut nichts.

Irgendwie möchte ich die Ansichten für den Zustand innerhalb des Übergangs in diesen Zustand ändern, so dass die dynamisch erstellte Ansicht verwendet wird. Ist das möglich? Weiß jemand, wie das gemacht werden kann?

+0

Vielleicht könnte dies von Nutzen sein: https://stackoverflow.com/questions/11003916/angularjs-how-do-i-switch-views-from-a-controller-function. Es beschreibt, wie Ansichten im Controller geändert werden. – DijkeMark

Antwort

0

Okay, ich habe nachgeforscht, was Sie genau wollten. Wenn ich richtig verstehe, möchten Sie die Ansichten während einer Statusänderung ändern, wobei jede Ansicht ihren eigenen Bereich und Controller hat.

Dies scheint mir, als ob Sie wollen, dass mehrere Zustände nebeneinander laufen. Vielleicht können Sie einen UI-Router-Extras: https://github.com/christopherthielen/ui-router-extras

Mit diesem Paket können Sie parallele Zustände und verschachtelte Zustände, die ich glaube, was Sie wollen/brauchen.

Nehmen Sie eine Beute bei https://christopherthielen.github.io/ui-router-extras/#/home für weitere Informationen und Arbeitsbeispiele.

+0

Ich geplündert (?) Https://christopherthielen.github.io/ui-router-extras/#/home, das war in der Tat, was ich suchte. Nahm etwas Arbeit auf, um es in Gang zu bringen, aber mache gute Fortschritte ... Danke. –

Verwandte Themen