Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS+;TypeScript:无法注入$routeProvider_Angularjs_Typescript - Fatal编程技术网

AngularJS+;TypeScript:无法注入$routeProvider

AngularJS+;TypeScript:无法注入$routeProvider,angularjs,typescript,Angularjs,Typescript,我正在尝试将路由应用到基于Typescript的Angular应用程序。应用程序应在$routeProvider中注入如下代码: var app = angular.module("MyApp", ["ui.bootstrap"]); // app.service's and controller's here... app.config(["$routeProvider", function ($routeProvider: ng.IRouteProvider) {

我正在尝试将路由应用到基于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的提供程序时出现异常:


错误:未知提供程序:$routeProviderProvider更新的答案:
就像我在下面的评论中提到的

e、 g.它在控制器中无效。仅供参考,您所谈论的“ProviderProvider”部分仅用于日志记录,而不是如何在内部搜索依赖项

并在您的代码中找到:

export class MainController {
    static $inject = ["$scope", "$routeProvider"];

    constructor(private $scope: IMainScope,
        private $routeProvider: ng.IRouteProvider) {
    }
}
控制器中不能有routeProvider。您的app.config是而不是导致错误的原因。将控制器更改为,错误将消失:

export class MainController {
    static $inject = ["$scope"];

    constructor(private $scope: IMainScope) {
    }
}
此外,我建议在使用控制器时不要实现自己的作用域。原因如下:


希望你和我一样喜欢angular+typescript:)

有什么用
:ng.IRouteProvider
?这是typescript:它只是一个类型声明。类型来自。无论如何,代码被编译成JS,这没有任何实际效果。谢谢你Basarat!但除了在“神奇”字符串中仅仅改变大小写可能以类似的方式对框架产生不利影响这一事实听起来有点令人惊讶之外,这并不能解决我的问题。此外,所有其他服务都是毫无问题地注入的。无论如何,因为我是这里的一个傻瓜:),我用pascal套管或camel套管测试了fiddle,得到了相同的结果(都有效),并且我自己的应用程序也不起作用。一旦你转向“现实世界”场景,NG的学习曲线看起来更陡峭一些。还有其他想法吗?PascalCase不适用于此功能:请注意,如果您想在控制台上看到错误,您需要重新加载页面。因此,即使您有
,您仍然需要执行
angular.module(“myApp”,[])export class MainController {
    static $inject = ["$scope"];

    constructor(private $scope: IMainScope) {
    }
}