我有一个 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
保持空白)。通过路径之间的跳转,路径得到正确解析,插件视图按应有的方式加载。
有没有更好的方法来做到这一点?