當我修改控制器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 的 directive 預設能共享父 scope 中定義的屬性,例如在模版中直接使用父 scope 中的物件和屬性。通常使用這種直接共享的方式可以實現一些簡單的 directive 功能。當你需要建立一個可重複使用的 directive,只是偶爾需要存取或修改父 scope 的數據,就需要使用隔離 scope。
AngularJS Directive 隔離 Scope 資料互動