Detailed explanation of communication methods between AngularJS controllers
The examples in this article describe the communication methods between AngularJS controllers. Share it with everyone for your reference, the details are as follows:
1. Use the inheritance method of scope
Since the inheritance of scope is based on the prototype inheritance method of js, there are two situations here. When the value above the scope is For basic types, modifying the value on the parent scope will affect the child scope. On the contrary, modifying the child scope will only affect the value on the child scope and will not affect the value on the parent scope; if you need the parent scope and If subscopes share a value, you need to use the latter one, that is, the value on the scope is an object. Modifications on either side can affect the other side. This is because objects in js are reference types.
Basic types
function Sandcrawler($scope) { $scope.location = "Mos Eisley North"; $scope.move = function(newLocation) { $scope.location = newLocation; } } function Droid($scope) { $scope.sell = function(newLocation) { $scope.location = newLocation; } }
html:
<p ng-controller="Sandcrawler"> <p>Location: {{location}}</p> <button ng-click="move('Mos Eisley South')">Move</button> <p ng-controller="Droid"> <p>Location: {{location}}</p> <button ng-click="sell('Owen Farm')">Sell</button> </p> </p>
Object
function Sandcrawler($scope) { $scope.obj = {location:"Mos Eisley North"}; } function Droid($scope) { $scope.summon = function(newLocation) { $scope.obj.location = newLocation; } }
html: reee
<p ng-controller="Sandcrawler"> <p>Sandcrawler Location: {{location}}</p> <p ng-controller="Droid"> <button ng-click="summon('Owen Farm')"> Summon Sandcrawler </button> </p> </p>
function Sandcrawler($scope) { $scope.location = "Mos Eisley North"; $scope.$on('summon', function(e, newLocation) { $scope.location = newLocation; }); } function Droid($scope) { $scope.location = "Owen Farm"; $scope.summon = function() { $scope.$emit('summon', $scope.location); } }
<p ng-controller="Sandcrawler"> <p>Sandcrawler Location: {{location}}</p> <p ng-controller="Droid"> <p>Droid Location: {{location}}</p> <button ng-click="summon()">Summon Sandcrawler</button> </p> </p>
function Sandcrawler($scope) { $scope.location = "Mos Eisley North"; $scope.recall = function() { $scope.$broadcast('recall', $scope.location); } } function Droid($scope) { $scope.location = "Owen Farm"; $scope.$on('recall', function(e, newLocation) { $scope.location = newLocation; }); }
<p ng-controller="Sandcrawler"> <p>Sandcrawler Location: {{location}}</p> <button ng-click="recall()">Recall Droids</button> <p ng-controller="Droid"> <p>Droid Location: {{location}}</p> </p> </p>
function Sandcrawler($scope) { $scope.$on('requestDroidRecall', function(e) { $scope.$broadcast('executeDroidRecall'); }); } function Droid($scope) { $scope.location = "Owen Farm"; $scope.recallAllDroids = function() { $scope.$emit('requestDroidRecall'); } $scope.$on('executeDroidRecall', function() { $scope.location = "Sandcrawler" }); }
<p ng-controller="Sandcrawler"> <p ng-controller="Droid"> <h2 id="R-D">R2-D2</h2> <p>Droid Location: {{location}}</p> <button ng-click="recallAddDroids()">Recall All Droids</button> </p> <p ng-controller="Droid"> <h2 id="C-PO">C-3PO</h2> <p>Droid Location: {{status}}</p> <button ng-click="recallAddDroids()">Recall All Droids</button> </p> </p>
var app = angular.module('myApp', []); app.factory('instance', function(){ return {}; }); app.controller('MainCtrl', function($scope, instance) { $scope.change = function() { instance.name = $scope.test; }; }); app.controller('sideCtrl', function($scope, instance) { $scope.add = function() { $scope.name = instance.name; }; });

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

Dreamweaver Mac version
Visual web development tools

Dreamweaver CS6
Visual web development tools