আপনার কাছে মূলত দুটি বিকল্প রয়েছে, হয় এটি পরিষেবা হিসাবে সংজ্ঞায়িত করুন, বা এটি আপনার মূল সুযোগে রাখুন। আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি মূল সুযোগকে দূষিত করা এড়াতে কোনও পরিষেবা তৈরি করুন। আপনি একটি পরিষেবা তৈরি করুন এবং এটি আপনার নিয়ামকটিতে এটি উপলভ্য করুন:
<!doctype html>
<html ng-app="myApp">
<head>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.angularjs.org/1.1.2/angular.min.js"></script>
<script type="text/javascript">
var myApp = angular.module('myApp', []);
myApp.factory('myService', function() {
return {
foo: function() {
alert("I'm foo!");
}
};
});
myApp.controller('MainCtrl', ['$scope', 'myService', function($scope, myService) {
$scope.callFoo = function() {
myService.foo();
}
}]);
</script>
</head>
<body ng-controller="MainCtrl">
<button ng-click="callFoo()">Call foo</button>
</body>
</html>
যদি এটি আপনার পক্ষে বিকল্প না হয় তবে আপনি এটির মতো মূল স্কোপটিতে এটি যোগ করতে পারেন:
<!doctype html>
<html ng-app="myApp">
<head>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.angularjs.org/1.1.2/angular.min.js"></script>
<script type="text/javascript">
var myApp = angular.module('myApp', []);
myApp.run(function($rootScope) {
$rootScope.globalFoo = function() {
alert("I'm global foo!");
};
});
myApp.controller('MainCtrl', ['$scope', function($scope){
}]);
</script>
</head>
<body ng-controller="MainCtrl">
<button ng-click="globalFoo()">Call global foo</button>
</body>
</html>
এইভাবে, আপনার সমস্ত globalFoo()
টেমপ্লেটগুলি কন্ট্রোলারের কাছ থেকে টেমপ্লেটে পাস না করে কল করতে পারে।
module.value('myFunc', function(a){return a;});
এবং তারপরে এটি আপনার কন্ট্রোলারে নাম দিয়ে ইনজেক্ট করুন। (যদি কোনও পরিষেবা করা এড়াতে চায়)