Biri bana bir yönergeden bir denetleyiciyi başka bir angularJS yönergesine nasıl dahil edeceğimi söyleyebilir mi? örneğin şu koda sahibim
var app = angular.module('shop', []).
config(['$routeProvider', function ($routeProvider) {
$routeProvider.when('/', {
templateUrl: '/js/partials/home.html'
})
.when('/products', {
controller: 'ProductsController',
templateUrl: '/js/partials/products.html'
})
.when('/products/:productId', {
controller: 'ProductController',
templateUrl: '/js/partials/product.html'
});
}]);
app.directive('mainCtrl', function () {
return {
controller: function ($scope) {}
};
});
app.directive('addProduct', function () {
return {
restrict: 'C',
require: '^mainCtrl',
link: function (scope, lElement, attrs, mainCtrl) {
//console.log(cartController);
}
};
});
Her halükarda, addProduct yönergesinde denetleyiciye erişebilmeliyim ama değilim. Bunu yapmanın daha iyi bir yolu var mı?
require
başka bir direktifin varlığını sağlar ve ardından onun denetleyicisini içerir.^require
mevcut öğeye ek olarak mevcut öğenin üzerindeki öğeleri kontrol eder. Yani bunun işe yaraması için iki yönergeyi birlikte kullanmanız gerekir. Aksi takdirde, sadece bir denetleyici tanımlayınapp.controller
ve ardından onu her iki yönergede kullanın. Her iki durumda da, bunu HTML kodunuzla birlikte basit bir Plunker'a koyabilir misiniz?