我们自定义的指令可能用在不同的控制器中,在不同的控制器中指令执行的方法或一样,或不一样,对应的操作也不一样;
讲一下,自定义在不同的控制器怎么执行不同的函数;
<!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);执行这个属性对应的方法;