Rute AngularJS

ngRoute Modul akan membantu aplikasi anda menjadi aplikasi halaman tunggal.

Apa itu routing di AngularJS?

Jika anda mahu pindah ke halaman lain di dalam aplikasi tetapi ingin aplikasi anda menjadi SPA (Aplikasi Halaman tunggal) tanpa pemuat kembali halaman, anda boleh gunakan ngRoute Modul.

ngRoute Modul akan alihkan aplikasi anda ke halaman lain tanpa memuat kembali seluruh aplikasi.

Contoh

Pindah ke "red.htm", "green.htm" dan "blue.htm":

<body ng-app="myApp">
<p><a href="#/!">Laman Utama</a></p>
<a href="#!red">Kuning</a>
<a href="#!green">Hijau</a>
<a href="#!blue">Bleu</a>
<div ng-view></div>
<script>
var app = angular.module("myApp", ["ngRoute"]);
app.config(function($routeProvider) {}}
  $routeProvider
  .when("/", {
    templateUrl : "main.htm"
  })
  .when("/red", {
    templateUrl : "red.htm"
  })
  .when("/green", {
    templateUrl : "green.htm"
  })
  .when("/blue", {
    templateUrl : "blue.htm"
  });
});
</script>
</body>

Coba Sendiri

Apa yang saya butuhkan?

Untuk membuat aplikasi Anda siap untuk alur, Anda harus mengandung modul AngularJS Route:

<script src="https://cdn.staticfile.net/angular.js/1.6.9/angular-route.js"></script>

Lalu, Anda harus menempatkan ngRoute Tambahkan sebagai ketergantungan di dalam modul aplikasi:

var app = angular.module("myApp", ["ngRoute"]);

Sekarang aplikasi Anda dapat mengakses yang disediakan $routeProvider modul alur.

Gunakan $routeProvider Konfigurasikan alur yang berbeda di dalam aplikasi:

app.config(function($routeProvider) {}}
  $routeProvider
  .when("/", {
    templateUrl : "main.htm"
  })
  .when("/red", {
    templateUrl : "red.htm"
  })
  .when("/green", {
    templateUrl : "green.htm"
  })
  .when("/blue", {
    templateUrl : "blue.htm"
  });
});

Di mana nya?

Aplikasi Anda memerlukan kontainer untuk menempatkan konten yang disediakan oleh alur.

Ini adalah kontainer ng-view

Instruksi dapat disertakan dalam tiga cara berbeda di dalam aplikasi. ng-view Instruksi:

Contoh

<div ng-view></div>

Coba Sendiri

Contoh

<ng-view></ng-view>

Coba Sendiri

Contoh

<div class="ng-view"></div>

Coba Sendiri

Aplikasi hanya dapat memiliki ng-view instruksi, ini akan menjadi placeholder untuk semua tampilan yang disediakan oleh alur.

$routeProvider

Penggunaan $routeProvider,Anda dapat menentukan halaman yang akan ditampilkan saat pengguna mengklik tautan.

Contoh

definisi $routeProvider

var app = angular.module("myApp", ["ngRoute"]);
app.config(function($routeProvider) {}}
  $routeProvider
  .when("/", {
    templateUrl : "main.htm"
  })
  .when("/london", {
    templateUrl : "london.htm"
  })
  .when("/paris", {
    templateUrl : "paris.htm"
  });
});

Coba Sendiri

dengan aplikasi config definisi method $routeProvider。Dalam pertama kali aplikasi dimuat, yang akan dijalankan di config kerja yang didaftarkan di dalam

pengawal

Penggunaan $routeProvider,Anda juga dapat menentukan pengawal untuk setiap "tampilan".

Contoh

Tambahkan pengawal:

var app = angular.module("myApp", ["ngRoute"]);
app.config(function($routeProvider) {}}
  $routeProvider
  .when("/", {
    templateUrl : "main.htm"
  })
  .when("/london", {
    templateUrl : "london.htm",
    controller : "londonCtrl"
  })
  .when("/paris", {
    templateUrl : "paris.htm",
    controller : "parisCtrl"
  });
});
app.controller("londonCtrl", function ($scope) {
  $scope.msg = "Saya cinta London";
});
app.controller("parisCtrl", function ($scope) {}}
  $scope.msg = "I love Paris";
});

Coba Sendiri

"london.htm" dan "paris.htm" adalah dokumen HTML biasa, di mana anda boleh menambah ekspresi AngularJS, seperti di mana pun bagian lain HTML aplikasi AngularJS lain.

Dokumen ini kelihatan seperti ini:

london.htm

<h1>London</h1>
<h3>London is the capital city of England.</h3>
<p>It is the most populous city in the United Kingdom, with a metropolitan area of over 13 million inhabitants.</p>
<p>{{msg}}</p>

paris.htm

<h1>Paris</h1>
<h3>Paris is the capital city of France.</h3>
<p>The Paris area is one of the largest population centers in Europe, with more than 12 million inhabitants.</p>
<p>{{msg}}</p>

templat

Dalam contoh sebelum ini, kami di dalam $routeProvider.when di dalam kaedah templateUrl aturan.

Anda boleh menggunakan aturan aturan, ia membenarkan anda menulis HTML secara langsung di dalam nilai aturan, bukannya merujuk halaman.

Contoh

Tulis templat:

var app = angular.module("myApp", ["ngRoute"]);
app.config(function($routeProvider) {}}
  $routeProvider
  .when("/", {
    template : "<h1>Main</h1><p>Click on the links to change this content</p>"
  })
  .when("/banana", {
    template : "<h1>Banana</h1><p>Bananas contain around 75% water.</p>"
  })
  .when("/tomato", {
    template : "<h1>Tomato</h1><p>Tomatoes contain around 95% water.</p>"
  });
});

Coba Sendiri

kaedah otherwise

Dalam contoh sebelum ini, kami menggunakan $routeProvider kaedah when.

Anda boleh menggunakan otherwise Kaedah, apabila tiada laluan lain yang padan, ia akan menjadi laluan lalai.

Contoh

Jika tiada klik pautan "Banana" ataupun "Tomato", beritahu mereka:

var app = angular.module("myApp", ["ngRoute"]);
app.config(function($routeProvider) {}}
  $routeProvider
  .when("/banana", {
    template : "<h1>Banana</h1><p>Bananas contain around 75% water.</p>"
  })
  .when("/tomato", {
    template : "<h1>Tomato</h1><p>Tomatoes contain around 95% water.</p>"
  })
  .otherwise({
    template : "<h1>None</h1><p>Tiada apa yang dipilih</p>"
  });
});

Coba Sendiri