Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Berkongsi Data Antara Negeri UI-Router AngularJS Tanpa Perkhidmatan atau Pemerhati?

Bagaimana untuk Berkongsi Data Antara Negeri UI-Router AngularJS Tanpa Perkhidmatan atau Pemerhati?

Susan Sarandon
Lepaskan: 2024-11-08 19:29:02
asal
1066 orang telah melayarinya

How to Share Data Between AngularJS UI-Router States Without Services or Watchers?

Berkongsi Data $skop Antara Keadaan UI-Router AngularJS tanpa Perkhidmatan atau Pemerhati

Dalam Penghala UI, mungkin sukar untuk berkongsi data antara $skop sebuah pengawal utama dan anaknya menyatakan tanpa bergantung pada perkhidmatan atau pemerhati dalam pengawal induk.

Penyelesaian:

Kuncinya terletak pada memahami hubungan antara skop AngularJS dan paparan UI-Router:

  • Warisan Skop mengikut Hierarki Paparan Sahaja: Skop diwarisi ke bawah rantaian negeri hanya jika pandangan negeri bersarang.
  • Pemahaman Skop: Kanak-kanak skop biasanya prototaip diwarisi daripada skop induk. Menggunakan '.' notasi (cth. Model.PropertyName) memastikan warisan ini.

Pelaksanaan Teknikal:

  1. Tentukan Paparan Bersarang: Pastikan pandangan keadaan anak bersarang dalam paparan induk.
  2. Gunakan Nilai Jenis Rujukan: Dalam model $skop anda, gunakan objek atau rujukan yang diluluskan melalui rujukan, bukannya nilai primitif.
  3. Gunakan Notasi Titik: Dalam takrifan model ng anda, gunakan notasi titik untuk memastikan pewarisan prototaip (cth., Model.PropertyName bukannya PropertyName).

Contoh:

Pertimbangkan definisi keadaan UI-Router berikut:

.state("main", {
      controller:'mainController',
      url:"/main",
      templateUrl: "main_init.html"
  })  
  .state("main.1", {
      parent: 'main',
      controller:'mainController',
      url:"/1",
      templateUrl: 'form_1.html'
  })  
  .state("main.2", {
      parent: 'main',
      controller:'mainController',
      url: "/2",
      templateUrl: 'form_2.html'
  })  
Salin selepas log masuk

Dalam mainController, mulakan model data kongsi seperti berikut:

controller('mainController', function ($scope) {
  $scope.Model = $scope.Model || {Name : "xxx"};
})
Salin selepas log masuk

Dalam templat keadaan anak anda, gunakan ng-model dengan notasi titik untuk mengakses data yang dikongsi:

<input type="text" ng-model="Model.Name">
Salin selepas log masuk

Dengan mengikuti langkah ini, anda boleh berkongsi data dengan berkesan antara $scopes dalam keadaan UI-Router tanpa memerlukan perkhidmatan atau pemerhati dalam pengawal induk.

Atas ialah kandungan terperinci Bagaimana untuk Berkongsi Data Antara Negeri UI-Router AngularJS Tanpa Perkhidmatan atau Pemerhati?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan