Konzept der AngularJS-Zustände
-
das Konzept der
States
in AngularJS -
Initialisieren Sie einen
State
in AngularJS -
Verwenden Sie den
Stateprovider
, um den Status für eine beliebige Anwendung in AngularJS bereitzustellen -
Unterschied zwischen
$stateProvider
und$routeProvider
in AngularJS -
Beispiel für AngularJS
States
Dieser Artikel untersucht das Konzept von State
in AngularJS
und wie man damit eine einfache Anwendung erstellt.
das Konzept der States
in AngularJS
Der STATE
in AngularJS
ist ein Mechanismus, der es uns ermöglicht, die Ansicht basierend auf Änderungen am Modell zu aktualisieren. Es ist eine bidirektionale Bindung zwischen Daten und DOM-Elementen.
Darüber hinaus hilft uns der Statte
, Daten zu verfolgen, die sich im Laufe der Zeit ändern, z. B. ob eine bestimmte Schaltfläche gedrückt wurde oder nicht.
Initialisieren Sie einen State
in AngularJS
Die Konfiguration eines STATE
in AngularJS
ist relativ einfach. Verwenden Sie die Methode State()
des Dienstes $stateProvider
, um einen Zustand zu konfigurieren.
In diesem Verfahren werden die Argumente stateName
und stateConfig
verwendet. stateName ist ein eindeutiger Name für einen Staat und kann so etwas wie /home
, /aboutus
, /Contactus
und so weiter sein.
stateConfig
ist ein Status-Setup-Objekt mit Eigenschaften wie templates
, templateURL
und ResolveURL
.
Verwenden Sie den Stateprovider
, um den Status für eine beliebige Anwendung in AngularJS bereitzustellen
Der $stateProvider
ist ein Modul, das in AngularJS
verwendet wird, um den Zustand für eine bestimmte Anwendung bereitzustellen.
Sie müssen keinen direkten Link zu einer Route verwenden, um dem Staat einen Namen, einen anderen Controller oder eine andere Perspektive zu geben.
Er verhält sich mehr oder weniger genauso wie der $routeProvider,
, konzentriert sich aber statt auf URLs
nur auf State. Wir können verschiedene Funktionen von UI-Route
nutzen.
Außerdem können Sie auf einer einzigen Seite zahlreiche ui-views
haben. Verschiedene Ansichten können verschachtelt und verwaltet werden, indem der Zustand im Routing-Schritt festgelegt wird.
Klicken Sie hier, um mehr über den Anbieter von Angular State zu erfahren.
Unterschied zwischen $stateProvider
und $routeProvider
in AngularJS
$stateProvider |
$routeProvider |
---|---|
Es nutzt das Drittanbietermodul ui-router , um die Routing-Funktionen zu erweitern und zu erweitern. |
Es nutzt das Modul ngRoute AngularJS . |
Es rendert den $stateProvider.state() |
Es rendert die $routeProvider.when() |
ui-router erstellt Routing in Abhängigkeit vom aktuellen Zustand der Anwendung. |
ngRoute verwendet die Routen-URL, um das Routing durchzuführen. |
ui-router verwendet $state.go() |
ng-router verwendet $location.path() |
Um von einer Seite oder einem Abschnitt zu einer anderen zu wechseln: $state.go('Services'); |
Um von einer Seite oder einem Abschnitt zu einer anderen zu wechseln: $location.path('Services'); |
Beispiel für AngularJS States
Lassen Sie uns ein Beispiel diskutieren, um das Konzept der Zustände klar zu verstehen.
Unser erster Schritt ist die Definition des $stateProvider
.
var app = angular.module('app', ['ui.router']);
app.config(function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/index");
$stateProvider
Danach schreiben wir den vollständigen JavaScript- und HTML-Code.
var app = angular.module('app', ['ui.router']);
app.config(function ($stateProvider, $urlRouterProvider){
$urlRouterProvider.otherwise("/index");
$stateProvider
// index
.state('index', {
url: "/index",
views: {
'menu-view': {
templateUrl:"menu.html"
},
'container-view': {
templateUrl:"home.html"
},
'left-view@index' :{
templateUrl:"entries.html"
},
'status-view': {
template:"<p>index<p>"
},
},
})
.state('entries', {
url: "/entries",
views: {
'menu-view': {
templateUrl:"menu.html"
},
'container-view': {
templateUrl:"entries.html"
},
'status-view': {
template:"<p>entries<p>"
},
},
})
.state('entries.add', {
url: "/add",
views: {
'bottom-view@entries': {
templateUrl:"entries.add.html"
},
'status-view@': {
template:"<p>entries.add<p>"
},
},
})
.state('entries.list', {
url: "/list",
views: {
'bottom-view@entries': {
templateUrl:"entries.list.html"
},
'status-view@': {
template:"<p>entries.list<p>"
},
},
})
});
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.3/angular.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.11/angular-ui-router.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.12.0/ui-bootstrap-tpls.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>
</head>
<body ng-app="app">
<div class="container">
<div class="row">
<div ui-view="menu-view" class="col-md-2"></div>
<div ui-view="container-view" class="col-md-10"></div>
</div>
<div class="pull-right">
<div style="width: auto; float:left; margin-right:10px">status:</div>
<strong style="width: auto; float:left;" ui-view="status-view"> </strong>
</div>
</div>
<script id="menu.html" type="text/ng-template">
<div class="alert alert-info">
<h3><a ui-sref="index">Home</a></h3>
<h3><a ui-sref="entries">Entries</a></h3>
</div>
</script>
<!-- home -->
<script id="home.html" type="text/ng-template">
<h4>Home</h4>
<div ui-view="left-view" class="col-md-7">
</script>
<script id="entries.html" type="text/ng-template">
<div class="alert alert-warning">
<strong>Entries</strong>
<h5><a ui-sref="entries.add">add new</a></h5>
<h5><a ui-sref="entries.list">view list</a></h5>
<div style="background:white">
<div ui-view="bottom-view"></div>
</div>
</div>
</script>
<script id="entries.add.html" type="text/ng-template">
Create new Entry <input type=text/>
</script>
<script id="entries.list.html" type="text/ng-template">
<ol>
<li>First Entry</li>
<li>Second Entry</li>
<li>Third Entry</li>
</ol>
</script>
<script id="arrivals.html" type="text/ng-template">
<div class="alert alert-success">
<div style="background:white">
<div ui-view="bottom-view"></div>
</div>
</div>
</body>
</html>
Um den oben erwähnten vollständigen Arbeitscode zu überprüfen, hier klicken.
Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.
Facebook