371 Stimmen

Daten zwischen AngularJS Controllern teilen

Ich versuche, Daten zwischen Controllern zu teilen. Ein Anwendungsfall ist ein mehrstufiges Formular, Daten, die in eine Eingabe eingegeben werden, werden später an mehreren Anzeigeorten außerhalb des ursprünglichen Controllers verwendet. Der Code unten und in diesem jsfiddle.

HTML

    Eingabe ist: {{FirstName}}

    Eingabe sollte auch hier sein: {{FirstName}}

JS

// App ohne Abhängigkeiten deklarieren
var myApp = angular.module('myApp', []);

// Eine Factory erstellen, um Daten zwischen Controllern zu teilen
myApp.factory('Data', function(){
    // Ich weiß, dass dies nicht funktioniert, aber was wird?
    var FirstName = '';
    return FirstName;
});

// Controller für Schritt 1
myApp.controller('FirstCtrl', function( $scope, Data ){

});

// Controller für Schritt 2
myApp.controller('SecondCtrl', function( $scope, Data ){
    $scope.FirstName = Data.FirstName;
});

Jede Hilfe wird sehr geschätzt.

-3voto

Lumic Punkte 53

Einfach machen (getestet mit v1.3.15):

    Hier den Namen ändern:

    Kontrolle 1: {{c1.sData.name}}, {{c1.sData.age}}

    Hier das Alter ändern:

    Kontrolle 2: {{c2.sData.name}}, {{c2.sData.age}}

    var app = angular.module("MyApp", []);

    var dummy = {name: "Joe", age: 25};

    app.controller("ctrl1", function () {
        this.sData = dummy;
    });

    app.controller("ctrl2", function () {
        this.sData = dummy;
    });

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X