起動時にコントローラーによって検出されるいくつかのプラグインをロードしたい AngularJS アプリケーションがあります。プラグインを機能させるために$routeProvider
、コントローラーからのルートをいくつか追加しましたが、これを行う方法はないようです。
現在、私は以下のようにかなり醜いハックを使用しています:
var routeProvider;
angular.module('example', [], function($routeProvider) {
routeProvider = $routeProvider;
// Set up other routes
}
function Controller($http, $location, $timeout) {
// Use $http to find some plugin
routeProvider.when(plugin.url, plugin.options);
// Ugly hack so that the plugin appears if $location.path() already points to it
var path = $location.path();
$location.path("/");
$timeout(function() { $location.path(path); }, 10);
}
意味のないことをしないと$timeout
、プラグインのルートで開始 (ページをロード) すると、ロードされません ($route.current
空白のままになります)。パス間のジャンプにより、ルートが適切に解決され、プラグイン ビューが正常にロードされます。
これを行うより良い方法はありますか?