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

  • 3dmmfavs

    3dmmfavs

    29 Kasım 2009
  • Dylan Brenan

    Dylan Brenan

    22 Aralık 2009
  • Kupa World

    Kupa World

    1 EYLÜL 2011