Ankündigung

Einklappen
Keine Ankündigung bisher.

url mit angularjs verändern

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • url mit angularjs verändern

    Hallöchen,
    im Moment beschäftige ich mich mit angularjs.. und habe dazu auch eine Frage.
    Ich hoffe das passt hier ins js Forum... wenn nicht dann bitte einfach verschieben.( oder wenns garnicht passt einfach löschen)
    Und zwar versuche ich mich dort grad am routing.
    Dort wird dann ein bestimmter Code ausgeführt wenn die URL eine bestimmte Endung hat.
    Nur wie kann ich die Url "bearbeiten"... bzw da etwas hinten anhängen wenn eine Seite geladen wird?
    Hier mal ein Teilcode des Routers.

    • function RoutingTable($stateProvider, $urlRouterProvider, BaseUrl) {
    • var baseUrl = BaseUrl + '/productCalculation/pages/';
    • $stateProvider
    • .state('start.test',{
    • url:'/test',
    • templateUrl: baseUrl + 'queries/test.html',
    • controller: 'productController',
    • parent:'start'
    • })


    Das würde also bewirken wenn meine url der Seite die Endung /test hat dann wird der controller 'productController' ausgeführt und die entsprechende html eingefügt usw... wie auch immer.
    Meine Frage ist nun halt wie kann ich es machen, das z.b. bei dem Klick eines Buttons oder ähnlichem, sich die URL der Seite ändert.
    Ich habe schon so viel gegoogelt... aber entweder falsch oder es gibt wirklich nichts dazu.
    Ich hoffe hier hat jemand ein wenig Ahnung davon und kann mir vielleicht einen Tipp geben..
    Vielen Dank
    theoretisch

  • #2
    Moin, du schweigst dich ein wenig darüber aus, was du da eigentlich schreibst und welche Komponenten du verwendest. Der stateProvider gehört zu ui.router. ui.router ist nicht kompatibel zu dem Standard-Router von Angular. Beides funktioniert nur, wenn man es explizit importiert.

    Wenn dir das alles gewusst ist, kannst du ja mal ein Minimal-Beispiel erstellen, wo nur der Router und dessen Funktionieren gezeigt wird.

    Kommentar


    • #3
      ja importiert ist alles.
      das Problem ist ja leider genau das, das der Router nicht geht... und ich nehme an das das daran liegt das die URL sich nicht verändert... und ohne das sich die URL verändert is das ja kein wunder.
      ich hab hier mal ein kleines beispiel auf Plunker. ( https://plnkr.co/edit/VFND0iWX57DclK1Hu9RM?p=preview )
      ob das da so einfach geht weiß ich nicht... aber dann hast du mal ein beispiel wie das bei mir so ca aufgebaut ist.
      ich habe auch schon versucht die URL leer zu lassen in der Hoffnung das es dann geht.
      • url:'',

      Aber leider ohne Erfolg.
      ist das überhaupt möglich? Den Controller auf zu rufen ohne die URL zu verändern?

      Kommentar


      • #4
        Hallöchen,

        wenn du ui-router verwendest, dann kannst du mittels ui-sref oder $state.go(..) zu einem anderen Zustand wechseln.

        Hier ein kleines Beispiel dazu: Simple AngularUI Router Example

        Viele Grüße,
        lotti
        [SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]

        Kommentar


        • #5
          danke für deine Antwort lotti.
          ich möchte aber die url verändern nicht den zustand. oder wechselt die url automatisch wenn sich der zustand ändert?
          dein beispiel ist ja komplett anders als meins... und in deinem beispiel kommt ja auch garkein $state.go(..) vor.
          ui-sref kann ich nicht nutzen da ich nicht mit dem klick auf einen Link die Seite laden möchte, sondern die automatisch mit dem Parent geladen werden soll.
          ich habe mich mal an $state.go(..) versucht allerdings ohne Erfolg.
          bis auf den neuen Fehler --> Error: Could not resolve '/test' from state 'start'
          hat sich nichts verändert.

          Kommentar


          • #6
            Hallöchen,

            Zitat von theoretisch Beitrag anzeigen
            ich möchte aber die url verändern nicht den zustand. oder wechselt die url automatisch wenn sich der zustand ändert?
            Das macht ui.router automatisch für dich. Du musst ui.router nur mitteilen, welchen Zustand du haben willst (das kann auch aktiv geschehen) und der Rest wird automatisch erledigt.

            Zitat von theoretisch Beitrag anzeigen
            dein beispiel ist ja komplett anders als meins...
            Da hast du Recht. Meines ist nämlich lauffähig!

            Zitat von theoretisch Beitrag anzeigen
            und in deinem beispiel kommt ja auch garkein $state.go(..) vor.
            Dann mach es dir doch zur Aufgabe, mein Beispiel mal mit $state.go umzusetzen. Das geht ähnlich simpel. Ich wollte hier nur eine der beiden genannten Varianten zeigen.

            Zitat von theoretisch Beitrag anzeigen
            ui-sref kann ich nicht nutzen da ich nicht mit dem klick auf einen Link die Seite laden möchte, sondern die automatisch mit dem Parent geladen werden soll.
            Was hat das mit ui-sref zu tun? Wenn du willst dass ein Zustand anhand einer URL direkt hergestellt wird, dann geschieht dies automatisch, wenn der Zustand entsprechend definiert wurde.

            Zitat von theoretisch Beitrag anzeigen
            ich habe mich mal an $state.go(..) versucht allerdings ohne Erfolg.
            bis auf den neuen Fehler --> Error: Could not resolve '/test' from state 'start'
            hat sich nichts verändert.
            Ohne lauffähiges Beispiel kann ich dir leider nicht weiterhelfen.

            Viele Grüße,
            lotti
            [SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]

            Kommentar

            Lädt...
            X