私は大きなアプリケーションをsilver-lightからangularjsに書き換えていますが、それを行っている間に、コントローラーのjsファイルのそれぞれが2000-3000行のコードであることに気付いています。私のコードはすべてscope変数に大きく依存しています。単一のコントローラーのjsファイルを複数のjsファイルに分割する機会があるかどうか疑問に思いますか?どんなポインタでもいただければ幸いです。
複数のコントローラーを使用して、ページ内のタスクを処理します。 largコントローラーの使用が避けられない場合は、スコープを別のメソッドに渡して定義を複数のファイルに分割し、残りのメソッドをそこで定義できます。
最初のファイルで:
app.controller('CtrlA', function($scope){
app.expandControllerA($scope);
});
2番目のファイル
app.expandControllerA = function($scope)
{
}
変数または依存関係をexpandControllerA関数に渡すことができます。
また、ベースコントローラーを作成し、 $ controller サービスを使用して派生コントローラーを作成することもできます。
例えば:
function BaseCtrl($scope, options) {
var vm = this;
// code
return vm;
}
function ChildCtrl($controller, $scope) {
var vm = $controller('BaseCtrl', {
$scope: $scope,
options: { }
});
// extend view model
vm.name = '';
return vm
}
コントローラーを個別のファイルに分割する方法は他にもあります。このng-conf video を確認してください。
angularモジュールでApp.factoryまたはapp.serviceを使用できます。 彼らはあなたのスニペットにデータを継承するようなものになるでしょう。データの一部をメインコントローラの外部に割り当て、割り当てられた変数をコントローラに継承できるようにします。
app.factory('name of the factory',function(){
return (data)
)
app.controller('$scope','name of the factory', function(scope, name of the factopry
$scope.new = data;
))