谁能告诉我如何将一个指令中的控制器包含在另一个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
然后在两个指令中都使用它。无论哪种方式,您都可以将其与HTML代码一起放入一个简单的Plunker中吗?