Ankündigung

Einklappen
Keine Ankündigung bisher.

Angular JS auf Funkiton zugreifen.

Einklappen

Neue Werbung 2019

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

  • Angular JS auf Funkiton zugreifen.

    Hallo Zusammen,
    ich stehe etwas auf dem schlauch. Habe gestern mit mich ein wenig mit Angular JS beschäftigt und stehe jetzt vor folgendem problem:

    Das ist mein Code:

    Code:
    // create our angular app and inject ngAnimate and ui-router
    // ================================================== ===========================
    angular.module('formApp', ['ngAnimate', 'ui.router'])
    
    // configuring our routes
    // ================================================== ===========================
    .config(function($stateProvider, $urlRouterProvider) {
    
    $stateProvider
    
    // route to show our basic form (/form)
    .state('form', {
    url: '/form',
    templateUrl: 'form.html',
    controller: 'formController'
    })
    
    // nested states
    // each of these sections will have their own view
    // url will be nested (/form/profile)
    .state('form.aboutU', {
    url: '/aboutU',
    templateUrl: 'form-aboutU.html'
    })
    
    .state('form.currentLevel', {
    url: '/currentLevel',
    templateUrl: 'form-currentLevel.html'
    })
    
    .state('form.extra', {
    url: '/extra',
    templateUrl: 'form-extra.html'
    })
    
    .state('form.result', {
    url: '/result',
    templateUrl: 'form-result.html'
    });
    
    // catch all route
    // send users to the form page
    $urlRouterProvider.otherwise('/form/aboutU');
    })
    
    // our controller for the form
    // ================================================== ===========================
    .controller('formController', function($scope) {
    
    // we will store all of our form data in this object
    $scope.formData = {};
    
    
    // function to process the form
    $scope.processForm = function() {
    auf result verweisen
    };
    
    });
    Ich möchte nun das die Funktion die über einen Button ausgelöst wird auf die result form verweist. Im Html Code was das mit ui-sref="result" möglich.

    Ich will das der Button nun vorher eine Berechnung mit den vorher erfassten Daten ausführt und Sie dann auf der result form anzeigt.
    Es ist eine applikation die mehrer Tabs hat.

  • #2
    Es gibt den $state-Service (ui.router) welcher die Möglichkeit bietet, über die go-Methode den State im Code zu ändern: $state.go('form.result'). Als zweites Argument kann man optional Parameter übergeben (die bspw. über die URL definiert sind) auf die via $stateParams zugegriffen werden kann.

    Noch ein Tipp: vermeide den direkten Einsatz von Controllern und nutze Components.
    [SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]

    Kommentar


    • #3
      Hallo,
      erstmal vielen Dank für deine Antwort. Hab leider noch nicht so viel mit Angular gemacht. Kannst du mir evtl ein Beispiel geben wie ich es in meinem Code ändern muss das der Button auf die nächste Form verweist?

      Und wie meinst du das genau mit den Components? Also wo ist der unterschied?

      Kommentar


      • #4
        Zitat von DrizztOne Beitrag anzeigen
        erstmal vielen Dank für deine Antwort. Hab leider noch nicht so viel mit Angular gemacht. Kannst du mir evtl ein Beispiel geben wie ich es in meinem Code ändern muss das der Button auf die nächste Form verweist?
        Hier ein Beispiel mit Angular-UI-Router 1.0.0-beta2: Using Angular-UI-Router with components

        Zitat von DrizztOne Beitrag anzeigen
        Und wie meinst du das genau mit den Components? Also wo ist der unterschied?
        Sieh dir einfach das Beispiel an. Statt sich langfristig die Codebase mit Controllern zu verwurschteln, kapselt man alles in möglichst unabhängige und wiederverwendbare Komponenten. Dazu findest du massenweise Artikel & Videos im Netz.
        [SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]

        Kommentar

        Lädt...
        X