Bất cứ ai có thể cho tôi biết làm thế nào để bao gồm một bộ điều khiển từ một chỉ thị trong một chỉ thị angleJS khác. ví dụ tôi có đoạn mã sau
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);
}
};
});
Bằng tất cả tài khoản, tôi sẽ có thể truy cập bộ điều khiển trong chỉ thị addProduct nhưng tôi thì không. Có cách nào tốt hơn để làm điều này không?
require
đảm bảo sự hiện diện của một chỉ thị khác và sau đó bao gồm bộ điều khiển của nó.^require
kiểm tra các phần tử phía trên phần tử hiện tại ngoài phần tử hiện tại. Vì vậy, bạn phải sử dụng hai chỉ thị cùng nhau để điều này hoạt động. Nếu không, chỉ cần xác định một bộ điều khiển vớiapp.controller
và sau đó sử dụng nó trong cả hai lệnh. Dù bằng cách nào, bạn có thể đặt nó vào một Plunker đơn giản cùng với mã HTML của mình không?