Kann mir jemand sagen, wie man einen Controller aus einer Direktive in eine andere angularJS-Direktive einbaut. zum Beispiel habe ich den folgenden CodeWie benötigt man einen Controller in einer angularjs-Direktive?
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);
}
};
});
Durch alle Konto sollte ich in der Lage sein, den Controller in der addProduct Richtlinie zugreifen, aber ich bin es nicht. Gibt es einen besseren Weg, dies zu tun?
"require" stellt das Vorhandensein einer anderen Direktive sicher und schließt dann seinen Controller ein. '^ required' prüft zusätzlich zum aktuellen Element Elemente über der aktuellen. Sie müssen also die beiden Direktiven zusammen verwenden, damit dies funktioniert. Andernfalls definieren Sie einfach einen Controller mit 'app.controller' und verwenden ihn dann in beiden Direktiven. Wie auch immer, können Sie dies zusammen mit Ihrem HTML-Code in einen einfachen Plunker einfügen? –
das war die Antwort –