angular.js - angular指令 作用域问题
我想大声告诉你
我想大声告诉你 2017-05-15 16:58:21
0
4
566

如何让指令内部的controller生成的数据传到指令外部的控制器中

我想大声告诉你
我想大声告诉你

répondre à tous(4)
漂亮男人

Parlons d’abord de trois méthodes :

  1. La réponse à l'étage utilise la communication diffusée, $emitvers le haut, $broadcastvers le bas

  2. service partager des données consiste à injecter les mêmes service dans directive et controller, puis à exploiter les données de ce service

  3. Bien entendu, si votre directive est à l'intérieur de controller, vous pouvez accéder au scope de controller (à condition qu'aucun scope indépendant ne soit créé), directement dans le directive de controller. opérer scope et le tour est joué

漂亮男人

Interne $scope.$emit("emit",data)
Externe $scope.$on("emit",function(ev,data){console.log(data)})

世界只因有你

Utilisez une portée indépendante, une liaison bidirectionnelle "=" et transmettez les données que vous souhaitez lier via les paramètres de la directive.

仅有的幸福

Il existe de nombreuses façons, selon la manière dont vous souhaitez utiliser vos données.

Distribution via abonnements et diffusions événementielles

//$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
})

Réécrivez la valeur de la propriété de l'objet sur la portée racine via la fonction d'héritage de $scope

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

Utilisez le module public angulaire pour le stockage des données et injectez-le dans le contrôleur que vous devez utiliser

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
})
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!