私にはさらに別の問題があります。今度は、ディレクティブのコントローラに渡された$ scopeサービスが原因です。下記のコードを参照してください:AngularJS:指令の縮小問題
angular.module('person.directives').
directive("person", ['$dialog', function($dialog) {
return {
restrict: "E",
templateUrl: "person/views/person.html",
replace: true,
scope: {
myPerson: '='
},
controller: function ($scope)
{
$scope.test = 3;
}
}
}]);
私がコントローラの部分をコメントアウトすると、正常に動作します。
ご覧のとおり、ディレクティブの配列宣言が使用されているため、$ダイアログサービスは縮小後でもAngularに認識されています。しかし、私はコントローラの$ scopeサービスのためにそれをどうするのですか?
それは私によって提供される解決策です:) Sam = OP ;-)しかし、私はコントローラ全体を、ディレクティブが属するモジュール全体に公開しているわけではありません。私はあなたのアプローチが好きです、私はそれのために行くでしょう。 – Sam
これを実際にAngularJSモジュールに公開すると、AngularJSモジュールがアクセスすることになります。これはアプリケーション全体に公開することで意味しています。 –
AngularJSモジュールは、依存している場合にのみperson.controllersモジュールにアクセスできます。彼らがその依存関係を持たない場合、その依存関係にアクセスするべきではありません。それじゃない? – Sam