//DEPENDENCY INJECTION function firstController($scope, $window){ $scope.text = "firstController"; $scope.introduce = function(e){ $window.alert($scope.text); } } function secondController(s, w){ s.text = "secondController"; s.introduce = function(e){ w.alert(s.text); } } secondController.$inject = ['$scope','$window'];
Mamy także możliwość tworzenia własnych serwisów dla naszych modułów. Dostarczając definicję, dostajemy w prezencie opisaną powyżej funkcjonalność, łącznie z możliwością wstrzykiwania naszego serwisu do kontrolera. Przykład poniżej.
angular.module('services', [], function($provide) { $provide.factory('mylogger', function() { var counter = 0; return function(text){ counter += 1; console.log("Logging text number " + counter); console.log(text); } }); });
Przykład użycia w kontrolerze:
function firstController($scope, $window){ $scope.text = "firstController"; $scope.introduce = function(e){ $window.alert($scope.text); } }
Przez konwencję zaleca się, by nie nadawać własnym serwisom nazw rozpoczynających się od $, jako znaku zarezerwowanego dla serwisów Angulara.
Brak komentarzy:
Prześlij komentarz