2016-08-30 1 views
0

Also habe ich zwei Routen, von denen eine eine Prospektkarte ist. Ich habe eine socket.io-Sache laufen, geben die Karte Pins, und ich habe Toast-Benachrichtigungen auf beiden Ansichten, wenn ein neuer Pin hinzugefügt wird.Winkeländerungsroute und dann Funktion in diesem Controller aufrufen

Wenn ein Benutzer auf einen Toast klickt, sollte auf den Standort des Pins zoomen, aber ich weiß nur, wie ich das implementieren, wenn ich bereits im Map Controller bin.

Wie gehe ich an dieses Problem heran? Wie ich es sehe, muss ich Routen wechseln und eine Funktion im neuen Controller mit einem Argument aufrufen, was nicht möglich scheint.

Meine Route konfigurieren, im Hauptmodul.

.config(['$routeProvider', function($routeProvider) { 
    $routeProvider 
    .when('/chat', { 
     templateUrl: 'chat/chat.html', 
     controller: 'ChatCtrl', 
     controllerAs: 'chat' 
    }) 
    .when('/map', { 
     templateUrl: 'map/map.html', 
     controller: 'MapCtrl' 
    }) 
    .otherwise({redirectTo: '/map'}); 
}]) 
+0

Sie rufen im Grunde nur eine Route mit einem bestimmten Parameter richtig? – dwbartz

+0

@dwbartz I das würde funktionieren, aber ich sehe keine Möglichkeit, Routen neben '$ location.path ('/ was auch immer');' oder einen Link auf der Seite zu ändern. – mtfurlan

Antwort

0

Sie können ng-href setzen die URL für einen Anker in dem Toast, die der Benutzer klickt verwenden.

<a ng-href="#/map/{{pinId}}" /> 

Wenn der Benutzer dann klickt, wird er sie zum Kartenpfad leiten. In der Steuerung sollten Sie $ routeParams injizieren, um zu überprüfen, ob ein Parameter gesetzt ist und wenn ja, zoomen Sie den Benutzer auf diesen Pin.

+0

Ja, ich war dumm. Vielen Dank! – mtfurlan

+0

@mtfurlan Glücklich zu helfen – dwbartz

Verwandte Themen