我們自定義的指令可能用在不同的控制器中,在不同的控制器中指令執行的方法或一樣,或不一樣,對應的操作也不一樣;
講一下,自定義在不同的控制器怎么執行不同的函數;
<!DOCTYPE html>
<html>
<head>
<title>ng1</title>
<script type="text/javascript" src="../lib/angular.js"></script>
</head>
<body ng-app="app">
<div ng-controller="helloTime">
<loaddata load="loadData()"></loaddata>
</div>
<div ng-controller="helloTime2">
<loaddata load="loadData2()"></loaddata>
</div>
<script type="text/javascript">
var app = angular.module('app',[]);
app.controller('helloTime',['$scope',function($scope){
$scope.loadData = function(){
console.log('加載數據。。。。')
}
}])
app.controller('helloTime2',['$scope',function($scope){
$scope.loadData2 = function(){
console.log('加載數據222222。')
}
}])
app.directive('loaddata',function(){
return {
restrict:'EA',
template:'<h1>加載數據</h1>',
link:function(scope,element,attr){
element.bind('mouseenter',function(){
// scope.$apply('loadData()')
// scope.loadData()
scope.$apply(attr.load)
})
}
}
})
</script>
</body>
</html>
注:在指令中定義一個自定義屬性,在link方法中可以獲取這個屬性;然后通過scope.$apply(attr.load);執行這個屬性對應的方法;
