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
1019 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!

sumber:php.cn
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