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
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 $
Nasıl belge hazır açısal denetleyicisi...
Açısal kullanarak Denetleyicileri açıs...
Uzanan Açısal Yönergesi...
Mücadele iki kez denetleyicisi yürütme...
Form nesnesi AngularJS kalıcı iletişim...