ใครช่วยบอกวิธีรวมคอนโทรลเลอร์จากคำสั่งหนึ่งในคำสั่ง 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 ของคุณได้หรือไม่?