cari

Rumah  >  Soal Jawab  >  teks badan

angular.js - isu skop arahan sudut

Cara memindahkan data yang dijana oleh pengawal di dalam arahan kepada pengawal di luar arahan

我想大声告诉你我想大声告诉你2779 hari yang lalu601

membalas semua(4)saya akan balas

  • 漂亮男人

    漂亮男人2017-05-15 17:00:21

    Mari kita bincangkan tentang tiga kaedah dahulu:

    1. Jawapan di tingkat atas menggunakan komunikasi penyiaran, $emitke atas, $broadcastke bawah

    2. service Berkongsi data bermakna menyuntik service yang sama ke dalam directive dan controller, dan kemudian mengendalikan data ini service

    3. Sudah tentu, jika directive anda berada di dalam controller, anda boleh mengakses skop controller (dengan syarat tiada skop bebas dibuat), terus dalam directive controller Just beroperasi scope dan anda telah selesai

    balas
    0
  • 漂亮男人

    漂亮男人2017-05-15 17:00:21

    $skop dalaman.$emit("pancarkan",data)
    $skop luaran.$on("pancarkan",fungsi(ev,data){console.log(data)})

    balas
    0
  • 世界只因有你

    世界只因有你2017-05-15 17:00:21

    Gunakan skop bebas, "=" pengikatan dua hala dan hantar data yang anda ingin ikat melalui parameter dalam arahan.

    balas
    0
  • 仅有的幸福

    仅有的幸福2017-05-15 17:00:21

    Terdapat banyak cara, bergantung pada cara anda ingin menggunakan data anda.

    Pengedaran melalui langganan acara dan siaran

    //$rootScope
    $rootScope.$on('data-pass',function(event, data){ $rootScope.$broadcast('data-receive', data) })
    // 传递数据的controller
    $scope.$emit('data-pass', data)
    // 需要数据的controller
    $scope.$on('data-receiver', function(event, data){
        // use data to do something
    })

    Tulis semula nilai sifat objek pada skop akar melalui ciri pewarisan $scope

    // 根作用域
    $rootScope.data = {}
    // 传递数据的controller
    $scope.data.record = {}
    // 需要数据的controller
    // use $scope.data.record to do something

    Gunakan modul awam bersudut untuk penyimpanan data dan masukkannya ke dalam pengawal yang anda perlu gunakan

    angular.factory('publicData',function(){
        return {}
    });
    // 传递数据的controller
    angular.controller('passController',function($scope, publicData){
        publicData.record = {}
    })
    // 需要数据的controller
    angular.controller('needController',function($scope, publicData){
        // use publicData.record to do something
    })

    balas
    0
  • Batalbalas