¿Alguien puede decirme cómo incluir un controlador de una directiva en otra directiva angularJS? por ejemplo tengo el siguiente código
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);
}
};
});
Según todas las cuentas, debería poder acceder al controlador en la directiva addProduct, pero no lo soy. ¿Existe una mejor manera de hacer esto?
requireasegura la presencia de otra directiva y luego incluye su controlador.^requirecomprueba los elementos por encima del actual además del elemento actual. Por lo tanto, debe usar las dos directivas juntas para que esto funcione. De lo contrario, simplemente defina un controlador conapp.controllery luego úselo en ambas directivas. De cualquier manera, ¿puedes poner esto en un Plunker simple junto con tu código HTML?