当我修改控制器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
的值发生改变时,重新请求接口。
リーリー
AngularJS ディレクティブは、デフォルトで親スコープで定義された属性を共有できます。たとえば、親スコープのオブジェクトと属性をテンプレートで直接使用できます。通常、いくつかの単純なディレクティブ関数は、この直接共有方法を使用して実装できます。親スコープのデータにアクセスしたり変更したりする必要が時々あるだけの再利用可能なディレクティブを作成する必要がある場合は、分離されたスコープを使用する必要があります。
AngularJS ディレクティブはスコープデータの相互作用を分離します