Директива доступа из другого модуля
У меня есть два разных модуля, первый содержит контроллер, вторая директива.
В основном я хочу directive
быть оказанным в моем view
, Но, как modules
за directive
а также controller
разные, это дает ошибку.
Если я дам то же самое module
тогда это решает мою проблему, я хочу универсальный модуль, обслуживающий все контроллеры.
controller
angular.module('SlamModuleCtrl')
.controller('SlambookExt',['$scope','$route','SlambookCollection', function($scope,$route) {
console.log("slam controller")
}]);
Directive
angular.module('Genericmodule')
.directive('appVersion', ['version', function (version) {
return {
restrict: 'E',
template: '<h1>version1</h1>'
}
}])
View
<div ng-controller="SlambookExt">
<app-version>1</app-version>
</div>
2 ответа
При создании экземпляра slamModuleCtrl
нужно указать genericModule
как зависимость.
Или используйте родительский модуль, который загружает оба этих модуля как зависимости, и используйте этот родительский модуль как ng-app
,
angular.module('parentModule',['slamModuleCtrl','genericModue'])
Это просто правдоподобное решение, потому что оба ваших модуля выглядят как раз для меня. Итак, я предполагаю, что версия не отображается, потому что модуль не был загружен
Chanthu правильно, вам нужно указать родительский модуль, который имеет зависимости от других ваших модулей, но вы также передаете массив зависимостей для других ваших модулей, в этом случае они не имеют их.
объявите свои модули и добавьте их в родительский модуль следующим образом...
var controllerModule = angular.module('controllerModule', []);
var directiveModule = angular.module('directiveModule', []);
controllerModule.controller('mainController', function($scope) {
$scope.hello = 'Hello';
})
directiveModule.directive('myDirective', function() {
return {
template: '{{hello}}'
};
});
angular.module('app', ['controllerModule', 'directiveModule']);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script>
<body ng-app="app" ng-controller="mainController">
<my-directive></my-directive>
</body>
фрагмент кода показывает другую директиву модуля и использует привязку от другого контроллера модуля