Может ли кто-нибудь сказать мне, как включить контроллер из одной директивы в другую директиву angularJS. например, у меня есть следующий код
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);
}
};
});
По всей видимости, я должен иметь доступ к контроллеру в директиве addProduct, но это не так. Есть ли лучший способ сделать это?
require
обеспечивает наличие другой директивы и затем включает ее контроллер.^require
проверяет элементы выше текущего в дополнение к текущему элементу. Таким образом, вы должны использовать две директивы вместе, чтобы это работало. В противном случае просто определите контроллер с помощью,app.controller
а затем используйте его в обеих директивах. В любом случае, можете ли вы поместить это в простой Plunker вместе со своим HTML-кодом?