recherche

Maison  >  Questions et réponses  >  le corps du texte

angulaire.js - Comment la transmettre à une directive lorsque la valeur d'un contrôleur change en temps opportun?

Quand je modifie une variable dans le contrôleur controller, j'espère que l'instruction directive pourra obtenir la valeur modifiée de la variable dans le temps.

app.directive('popoverMobile',function(){
    return {
        restrict:"E",
        transclude:true,
        scope:true,
        templateUrl:"tmpl/popover.mobile.tmpl.html",
        controller:["$scope",function($scope){
            $scope.popover_status=false;
            jQuery.ajax({
                type:"GET",                
                url:"https://**.***.com/**.htm?tel="+$scope.parents_detail.mobile,
                dataType:"jsonp",
                jsonp:"callback",
                jsonpCallback:"jsonpCallback",
                success:function(data){
                    $scope.mobile_info=data;
                }
            });
        }],
        link:function(scope){
            scope.switch_popover=function(val){
                scope.popover_status=val;
                scope.$apply();
            }
        },
        replace:true
    }
});

$scope.parents_detail.mobile est une variable dans le contrôleur ;
Lorsque la valeur de $scope.parents_detail.mobile change, l'interface est à nouveau demandée.

为情所困为情所困2808 Il y a quelques jours517

répondre à tous(2)je répondrai

  • 黄舟

    黄舟2017-05-15 17:00:45

    $scope.$watch

    répondre
    0
  • 習慣沉默

    習慣沉默2017-05-15 17:00:45

    Les directives AngularJS peuvent partager des attributs définis dans la portée parent par défaut. Par exemple, les objets et les attributs de la portée parent peuvent être utilisés directement dans les modèles. Habituellement, certaines fonctions directives simples peuvent être implémentées à l’aide de cette méthode de partage direct. Lorsque vous devez créer une directive réutilisable qui n'a besoin qu'occasionnellement d'accéder ou de modifier des données dans la portée parent, vous devez utiliser une portée isolée.

    La directive AngularJS isole l'interaction des données de portée

    répondre
    0
  • Annulerrépondre