Heim >Web-Frontend >js-Tutorial >Wie kann ich Variablen effektiv zwischen AngularJS-Controllern übergeben?

Wie kann ich Variablen effektiv zwischen AngularJS-Controllern übergeben?

DDD
DDDOriginal
2024-12-02 01:32:14237Durchsuche

How Can I Effectively Pass Variables Between AngularJS Controllers?

Variablen zwischen AngularJS-Controllern übergeben

Variablen zwischen AngularJS-Controllern übergeben ist eine häufige Aufgabe in der Anwendungsentwicklung. Ein Ansatz besteht darin, einen Dienst zu erstellen, um Variablen zwischen Controllern zu teilen.

Erstellen eines gemeinsam genutzten Dienstes

angular.module('myApp', [])
    .service('sharedProperties', function () {
        var property = 'First';

        return {
            getProperty: function () {
                return property;
            },
            setProperty: function(value) {
                property = value;
            }
        };
    });

Verwenden des Dienstes

Fügen Sie in Controllern das Gemeinsame ein Service:

function Ctrl2($scope, sharedProperties) {
    $scope.prop2 = "Second";
    $scope.both = sharedProperties.getProperty() + $scope.prop2;
}

Überlegungen

Damit Bindungen über mehrere Controller hinweg funktionieren, ist es vorzuziehen, an die Eigenschaft eines Objekts zu binden und nicht an einen primitiven Typ.

// Avoid using primitive types
var property = 'First';

// Use objects
var property = { Property1: 'First' };

Beispiel

Siehe [dies fiddle](https://jsfiddle.net/philipjohnson/34qhw/) für ein Beispiel, das Folgendes demonstriert:

  • Bindung an statische Kopien gemeinsamer Werte
  • Bindung an geteilte Werte Werte, die die Benutzeroberfläche aktualisieren, wenn sich Werte ändern

    • Bindung an a Funktion
    • Bindung an die Eigenschaft eines Objekts
    • Zwei-Wege-Bindung an die Eigenschaft eines Objekts

Das obige ist der detaillierte Inhalt vonWie kann ich Variablen effektiv zwischen AngularJS-Controllern übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn