我正在尝试将路由应用于基于 Typescript 的 Angular 应用程序。该应用程序应该让 $routeProvider 注入如下代码:
var app = angular.module("MyApp", ["ui.bootstrap"]);
// app.service's and controller's here...
app.config(["$routeProvider",
function ($routeProvider: ng.IRouteProvider) {
$routeProvider
.when("/", {
controller: MyApp.Controllers.ItemsController,
templateUrl: "/Items.html"
})
// ... other routes ...
.otherwise({
redirectTo: "/"
});
}]);
无论如何,当我启动应用程序时,我从 Angular 中得到一个异常,告诉我它找不到名为$routeProviderProvider的提供程序:
Error: Unknown provider: $routeProviderProvider <- $routeProvider at Error (<anonymous>)
at http://.../Scripts/angular.js:2734:15
at Object.getService [as get] (http://.../Scripts/angular.js:2862:39)
at http://.../Scripts/angular.js:2739:45
at getService (http://.../Scripts/angular.js:2862:39)
at invoke (http://.../Scripts/angular.js:2880:13)
at Object.instantiate (http://.../Scripts/angular.js:2914:23)
at $get (http://.../Scripts/angular.js:4805:24)
at $get.i (http://.../Scripts/angular.js:4384:17)
at forEach (http://.../Scripts/angular.js:137:20) undefined angular.js:5754
通过查看角度源(1.0.7),我可以看出这是因为在创建instanceInjector的第 2737 行,它的名称来自于将名为providerSuffix的变量附加到请求的提供者名称(此处为“$routeProvider”)。因此,这会导致异常。然而,正确的名称应该是“$routeProvider”;如果我在代码中将其更改为“$route”,则此错误会按预期消失,因为现在构建的名称是“$routeProvider”;但我得到另一个异常,告诉我服务“$route”没有定义。那么,我应该怎么做才能解决这个问题呢?