SORU
22 ŞUBAT 2013, Cuma


Bir fonksiyonu açısal içinde her kontrolör olarak kullanılabilir hale getirebilir miyim?

Eğer fonksiyonu varsa foo ng-app benim bildirinin her yerde içinden aramak mümkün olmak istiyorum. Benim modülde genel erişilebilir hale getirebilirim şekilde Kur veya her denetleyicisi kapsamına eklememe gerek var mı yok mu?

CEVAP
22 ŞUBAT 2013, Cuma


Temelde iki seçenek, ya da bir hizmet olarak tanımlamak veya kök kapsamı üzerine yerleştirin. Bunun dışında bir hizmet root kapsamında kirletici önlemek için yapmanızı öneririm. Bir hizmet oluşturmak ve bu şekilde denetleyicisi olarak kullanılabilir:

<!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>

Eğer bu sizin için bir seçenek değilse, bu gibi kök kapsamında ekleyebilirsiniz:

<!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>

Bu şekilde, şablonlar tüm kumanda şablonu geçmek zorunda kalmadan globalFoo() çağırabilir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ibebrent

    ibebrent

    23 Temmuz 2007
  • Pál Zoltán Illés

    Pál Zoltán

    30 NİSAN 2007
  • TecnoTutosPC

    TecnoTutosPC

    19 Kasım 2012