これには RequireJS を使用できます。何かのようなもの:
$routeProvider.when('/:plugin',{
templateUrl: 'plugins/' + plugin + '/index.html',
controller: plugin + 'Ctrl',
resolve: {myCtrl: function($q){
var deferred = $q.defer();
require('myCtrlFile',function(){
deferred.resolve();
});
return deferred.promise;
}}
});
また、コントローラーを動的に登録する必要があります。アプリ構成でプロバイダーを公開する。
app.config(function($controllerProvider,$compileProvider,$filterProvider,$provide){
app.register =
{
controller: $controllerProvider.register,
directive: $compileProvider.directive,
filter: $filterProvider.register,
factory: $provide.factory,
service: $provide.service
};
});
コントローラーファイルは次のようになります。
define(['app'],function(app){
app.register.controller('myCtrl',MyCtrlFunction);
});
これは単なる一般的な考え方です。ここで説明したものと同様の実装を使用します
私もui-routerを使っています。動作が ngRoute と同じかどうかはわかりません。