angularJS指令--在各自的控制器里調用不同的函數


我們自定義的指令可能用在不同的控制器中,在不同的控制器中指令執行的方法或一樣,或不一樣,對應的操作也不一樣;

講一下,自定義在不同的控制器怎么執行不同的函數;

<!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);執行這個屬性對應的方法;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM