私は相当数のサブモジュールを持つAngularJS Webアプリケーションで作業していました。 2つのサブモジュールはCRUD機能を持っていたため、これらのモジュールの両方に同じ名前のコントローラが2つありました。 http://plnkr.co/edit/JRwJsrJd84nPnjj36GAZ:AngularJS異なるモジュールから同じ名前のコントローラを混在させる
<!DOCTYPE html>
<html>
<head>
<script data-require="[email protected]" data-semver="1.5.6" src="https://code.angularjs.org/1.5.6/angular.min.js"></script>
<link rel="stylesheet" href="style.css" />
<script>
angular
.module('app', [
'app.one',
'app.two'
]);
angular
.module('app.one', [])
.controller('MyCtrl', function() {
var vm = this;
vm.message = 'Hello World from app.one!';
});
angular
.module('app.two', [])
.controller('MyCtrl', function() {
var vm = this;
vm.message = 'Hello World from app.two!';
});
</script>
</head>
<body ng-app="app" ng-controller="MyCtrl as vm">
<h1>{{ vm.message }}</h1>
</body>
</html>
ます。また、これはplnkrで見つけることができます。コードは次のように見えた方法のアイデアについては、以下のスニペットを見ています。
今、問題は私が混乱していることです。 AngularJSが同じ名前のコントローラを別のモジュールと混同するのは当然のことです。誰かがこれを説明し、これを克服する方法を示せば、本当に感謝しています。
ありがとうございます!
モジュールのためにすべての 'が必要です'が1つずつ読み込まれ、 '$ injector'または親モジュールの各' $ provide'値を統合している場合。 Angular.js: 'function module(name、requires、configFn){...}'、 'function loadModules(modulesToLoad){...}'です。 '$ injector'は要素にバインドされているので、' app'を持っていれば、 'app'要素に束縛されています。' $注入 '' app.two'のときは 'MyCtrl'を上書きします。 '$ inject'と' $ provide'は名前をキーとして働きます。そのため、あなたはそれを上書きしました。 – Appeiron