Хтось може сказати мені, як включити контролер з однієї директиви в іншу директиву 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-кодом?