Czy ktoś może mi powiedzieć, jak włączyć kontroler z jednej dyrektywy do innej dyrektywy angularJS. na przykład mam następujący kod
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);
}
};
});
Pod każdym względem powinienem mieć dostęp do kontrolera w dyrektywie addProduct, ale nie mam. Czy jest lepszy sposób na zrobienie tego?
require
zapewnia obecność innej dyrektywy, a następnie dołącza jej kontrolera.^require
sprawdza elementy powyżej bieżącego oprócz bieżącego elementu. Aby to zadziałało, musisz użyć obu dyrektyw razem. W przeciwnym razie po prostu zdefiniuj kontroler za pomocą,app.controller
a następnie użyj go w obu dyrektywach. Tak czy inaczej, czy możesz umieścić to w prostym Plunkerze wraz z kodem HTML?