angular.js - 当控制器的值发生改变时,如何及时将其传递给指令?
为情所困
为情所困 2017-05-15 16:58:45
0
2
483

当我修改控制器controller内的某个变量时,希望指令directive能及时获取变量修改后的值。

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 是控制器中的变量;
$scope.parents_detail.mobile 的值发生改变时,重新请求接口。

为情所困
为情所困

全員に返信(2)
黄舟

リーリー

いいねを押す +0
習慣沉默

AngularJS ディレクティブは、デフォルトで親スコープで定義された属性を共有できます。たとえば、親スコープのオブジェクトと属性をテンプレートで直接使用できます。通常、いくつかの単純なディレクティブ関数は、この直接共有方法を使用して実装できます。親スコープのデータにアクセスしたり変更したりする必要が時々あるだけの再利用可能なディレクティブを作成する必要がある場合は、分離されたスコープを使用する必要があります。

AngularJS ディレクティブはスコープデータの相互作用を分離します

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート