So können wir Bereichsvariablen in unserem eckigen HTML einfach so verwenden:
<!doctype html>
<html ng-app>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js"></script>
</head>
<body>
<div>
<label>Name:</label>
<input type="text" ng-model="yourName" placeholder="Enter a name here">
<hr>
<h1>Hello {{yourName}}!</h1>
</div>
</body>
</html>
Also zum Beispiel:
<h1>Hello {{yourName}}!</h1>
Verwendet yourName
aus dem Bereich, den ich mir erhofft hatte:
<h1>Hello {{yourName}} you are in in {{$rootScope.zoneName}}!</h1>
Ist es möglich, $rootScope
Variablen wie diese einzubringen?
$route.current.params
?Das sollte funktionieren:
<h1>Hello {{yourName}} you are in in {{$root.zoneName}}!</h1>
quelle
{{$route.current.params}}
?$root
.Sie können Ihren
$rootScope
Controller einspeisen und ihn dann einer solchen Bereichsvariablen zuordnen$scope.global = $rootScope;
dann könnten Sie in Ihrer Vorlage verwenden
<p>$rootscope value of name is {{ global.name }}.</p>
Sie müssen darauf achten, dass Sie nichts unnötig in das
$rootScope
Programm einfügen, da dies nicht als bewährte Methode zum Modulieren Ihres Codes angesehen wirdquelle
Ich weiß, dass dies spät ist, aber eine gute Erklärung ist erforderlich!
Jede Ansicht in Angular 1.x Welt wird automatisch und standardmäßig ein neuer $ Umfang solchen $ Umfang wird von dem angerufene etwas erweitert wird $ rootScope so die lokale $ scope alles erben wird , dass der $ rootScope speichert und muss seine eigene Version von diesen Daten.
Wenn Sie also Informationen in der $ rootScope- Ebene haben, haben Sie diese standardmäßig und Ihre Ansicht kann mit der üblichen Interpolation direkt darauf zugreifen.
Diese Codezeile zeigt auch das Wie!
var app = angular.module('plunker', []); app.run(function($rootScope) { $rootScope.persons = [ { name : "Houssem", role : "Developer Advocate" }, { name: "Clark", role: "Developer" } ]; }) app.controller('MainCtrl', function($scope) { $scope.greetings = 'Hello World !'; });
Und das auf der Indexseite:
<!DOCTYPE html> <html ng-app="plunker"> <head> <meta charset="utf-8" /> <title>AngularJS Plunker</title> <link rel="stylesheet" href="style.css" /> <script data-require="[email protected]" src="https://code.angularjs.org/1.0.8/angular.js" data-semver="1.0.8"></script> <script data-require="[email protected]" data-semver="1.0.0-alpha.5" src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-router/1.0.0-alpha.5/angular-ui-router.js"></script> <script src="app.js"></script> </head> <body ng-controller="MainCtrl"> <p>{{greetings}}</p> <ul> <li ng-repeat="person in persons"> <p>{{person.name}} - {{person.role}}</p> </li> </ul> </body> </html>
Und bitte überprüfen Sie diesen Plunker, der genau das erklärt!
quelle
In meinem Fall funktionierte es nicht mit der
rootscope
direkten Verwendung von Variablen. Ich musste es mit $ root verwenden.Mein Code sieht wie folgt aus:
<h1>you are in in {{$root.zoneName}}!</h1>
quelle