AngularJS: Wie wechsle ich Ansichten von einer Controller-Funktion?
Ich versuche, mit der ng-klicken Sie auf feature von AngularJS mit dem wechseln der Ansichten. Wie würde ich gehen über das tun dies mit dem code unten?
index.html
<div ng-controller="Cntrl">
<div ng-click="someFunction()">
click me
<div>
<div>
controller.js
function Cntrl ($scope) {
$scope.someFunction = function(){
//code to change view?
}
}
InformationsquelleAutor der Frage The_Brink | 2012-06-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Um zwischen verschiedenen Ansichten wechseln, könnte man direkt ändern das Fenster.Lage (mit dem $location-service!) in
index.html Datei
Controller.js
und den router so konfigurieren, wechseln Sie in die verschiedenen Teiltöne basierend auf dem Standort ( wie hier gezeigt https://github.com/angular/angular-seed/blob/master/app/app.js ). Dies hätte den Vorteil, die Geschichte als auch die Verwendung von ng-view.
Alternativ verwenden Sie ng-include mit verschiedenen Teiltöne und dann mit einem ng-switch wie gezeigt hier ( https://github.com/ganarajpr/Angular-UI-Components/blob/master/index.html )
InformationsquelleAutor der Antwort ganaraj
Die mitgelieferte Antwort ist absolut richtig, aber ich wollte, zu erweitern, für zukünftige Besucher kann es machen wollen ein bisschen mehr dynamisch -
In der Ansicht -
In der controller -
Gleichen grundlegenden Konzept wie die akzeptierte Antwort, nur das hinzufügen einige dynamische Inhalte, um es zu verbessern-ein bisschen. Wenn die akzeptierte Antwort hinzufügen will, diese werde ich löschen meine Antwort.
InformationsquelleAutor der Antwort PW Kad
Habe ich ein Beispiel zu arbeiten.
Hier ist, wie mein doc sieht:
Hier ist, was meine teilweise sieht wie folgt aus:
Hier ist, was mein Strg aussieht:
app ist mein Modul:
Hoffe, das ist hilfreich!
InformationsquelleAutor der Antwort Cody
Die Methode, die für alle bisherigen Antworten auf diese Frage vorschlagen, die änderung der url ist nicht nötig, und ich denke, die Leser sollten sich bewusst sein, eine alternative Lösung. I mit ui-router und $stateProvider der Zuordnung einer Status-Wert mit einer templateUrl die Punkte, um die html-Datei für Ihre Ansicht. Dann ist es nur eine Frage der Injektion der $Staat in den controller und den Aufruf $Staat.gehen ("state-Wert) um die Ansicht zu aktualisieren.
Was ist der Unterschied zwischen angular-route und angular-ui-router?
InformationsquelleAutor der Antwort Gavin Palmer
Gibt es zwei Möglichkeiten:
Wenn Sie sind mit ui-router oder
$stateProvider
tun Sie es so:wenn Sie mit eckig-router oder
$routeProvider
tun Sie es so:InformationsquelleAutor der Antwort Sukhminder Parmar
Ohne dabei eine vollständige Neugestaltung der default-routing (#/ViewName) Umgebung, ich war in der Lage zu tun, eine leichte Modifikation von Cody Tipp geholt und es funktioniert Super.
den controller
Ansicht
Was brachte mich zu dieser Lösung war, wenn ich versuchte zu integrieren, Kendo Mobile UI-widget in eine eckige Umgebung, die ich verlor den Zusammenhang mit meinem controller und das Verhalten der regulären Anker-tag wurde auch vereinnahmt zu werden. Ich re-etablierten meinen Kontext innerhalb der Kendo-widget und notwendig, eine Methode zu verwenden, um zu navigieren...das hat funktioniert.
Danke für die bisherigen Beiträge!
InformationsquelleAutor der Antwort beauXjames
Hoffe, dies wird Ihnen helfen,
InformationsquelleAutor der Antwort Vaishali Tekale
Diese kleine Funktion hat mir gut gedient:
Brauchen Sie nicht den vollständigen Pfad, nur die Ansicht Umschalten, um
InformationsquelleAutor der Antwort Shawn Dotey