SORU
14 Mayıs 2013, Salı


Açısal: Uzanan denetleyicisi

Uzanan denetleyicileri için Açısal önerilen yolu nedir? Oldukça benzer üç denetleyicileri var. Bu üç uzanan bir kumanda var ve işlevlerini paylaşmak istiyorum.

CEVAP
29 EKİM 2013, Salı


Belki desanabir denetleyicisi uzatmak istemiyorum ama olası bir denetleyicisi uzatmak veya tek bir kumanda birden çok denetleyicileri kendisine dahil ederse.

module.controller('CtrlImplAdvanced', ['$scope', '$controller', function ($scope, $controller) {
    // Initialize the super class and extend it.
    angular.extend(this, $controller('CtrlImpl', {$scope: $scope}));
    … Additional extensions to create a mixin.
}]);

Ana denetleyicisi oluşturduğunuzda mantığı da yürütülecek olan dairedir. Bakın $denetleyicisi() ama $scope değeri çıkarılmalı. hakkında daha fazla bilgi için için Diğer tüm değerler normal olarak enjekte edilecektir.

@mwarrenendişenizi otomatik sihirli Açısal tarafından bağımlılık enjeksiyon halledilir. Tüm ihtiyacınız enjekte edilmesidir $istenirse diğer enjekte edilen değerleri geçersiz kılar, ancak kapsam. Aşağıdaki örnek alalım:

(function(angular) {

	var module = angular.module('stackoverflow.example',[]);

	module.controller('simpleController', function($scope, $document) {
		this.getOrigin = function() {
			return $document[0].location.origin;
		};
	});

	module.controller('complexController', function($scope, $controller) {
		angular.extend(this, $controller('simpleController', {$scope: $scope}));
	});

})(angular);
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular.js"></script>

<div ng-app="stackoverflow.example">
    <div ng-controller="complexController as C">
        <span><b>Origin from Controller:</b> {{C.getOrigin()}}</span>
    </div>
</div>

Belgeye geçmedi 'yarattığı zaman' '' $belge bizim için enjekte edilir. complexController simpleController rağmen $

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Fuse

    Fuse

    21 Kasım 2005
  • SelmerSaxMan

    SelmerSaxMan

    24 HAZİRAN 2006
  • WePlayWeWatch

    WePlayWeWatc

    3 Temmuz 2013