¿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?
require
asegura la presencia de otra directiva y luego incluye su controlador.^require
comprueba 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.controller
y luego úselo en ambas directivas. De cualquier manera, ¿puedes poner esto en un Plunker simple junto con tu código HTML?