Maison >interface Web >js tutoriel >Comment puis-je transmettre efficacement des variables entre les contrôleurs AngularJS ?

Comment puis-je transmettre efficacement des variables entre les contrôleurs AngularJS ?

DDD
DDDoriginal
2024-12-02 01:32:14308parcourir

How Can I Effectively Pass Variables Between AngularJS Controllers?

Transmission de variables entre les contrôleurs AngularJS

La transmission de variables entre les contrôleurs AngularJS est une tâche courante dans le développement d'applications. Une approche consiste à créer un service pour partager des variables entre les contrôleurs.

Création d'un service partagé

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

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

Utilisation du service

Dans les contrôleurs, injectez le partagé service :

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

Considérations

Pour que les liaisons fonctionnent entre les contrôleurs, il est préférable de se lier à la propriété d'un objet plutôt qu'à un type primitif.

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

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

Exemple

Voir [ce fiddle](https://jsfiddle.net/philipjohnson/34qhw/) pour un exemple qui démontre :

  • Liaison à des copies statiques de valeurs partagées
  • Liaison à des valeurs partagées valeurs qui mettent à jour l'interface utilisateur à mesure que les valeurs changent

    • Liaison à un function
    • Liaison à la propriété d'un objet
    • Liaison bidirectionnelle à la propriété d'un objet

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn