【问题标题】:Error $injector, ng-view错误 $injector, ng-view
【发布时间】:2014-12-31 15:40:12
【问题描述】:

大家好,我有这个代码:

<!DOCTYPE html>
<html ng-app="app">
    <head>
        <meta charset="utf-8">
        <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js"></script>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css">
        <script src="angular-route.min.js"></script>
    </head>

<body>
    <div class="container" ng-controller="myCtrl">          
        <div class="main">
            {{hello world}}
            <div ng-view></div>

        </div>

    </div>



<script>
    var app=angular.module('app',[]);

    app.config(function($routeProvider){
        $routerProvider.
        when('/',{templateUrl: 'partials/directory.html'})
        .when('/view/:id',{templateUrl:'partials/view.html',
                controller:viewController})
        .otherwise({redirecTo:'/'})
    });

    app.controller('myCtrl',['$scope','$http',function($scope,$http){
        $http.jsonp('http://www.filltext.com/?callback=JSON_CALLBACK&fname={firstName}&lname={lastName}&tel={phone}').success(function(data){
            $scope.people=data;
        });
    }]);

    app.controller('viewController',['$scope','$routeParams',function($scope,$routeParams){
            $scope.person=$scope.people[$routeParams.id];
    }]);
</script>
</body>
</html>

当我尝试运行它时,会出现 $injector 错误,我猜这是因为controller 注入。 我希望我没有另一个错字,但我确实检查了它。 你能帮帮我吗:)

【问题讨论】:

    标签: angularjs angularjs-routing angularjs-controller


    【解决方案1】:

    在 html 中,您需要将 angular-route.js 的脚本标记更正为:

    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular-route.min.js"></script>
    

    同样在 javascript 中,您需要将 ngRoute 服务注入应用程序并更正路由,因为您需要将控制器更改为字符串并且.otherwise({redirectTo: '/'}); 上存在拼写错误

    var app=angular.module('app',["ngRoute"]);
    
    app.config(function($routeProvider){
        $routerProvider.
        when('/',{templateUrl: 'partials/directory.html'})
        .when('/view/:id',{templateUrl:'partials/view.html',
                controller:'viewController'})
        .otherwise({redirectTo:'/'});
    });
    

    我希望这会有所帮助。

    【讨论】:

    • Noupe 它没有帮助......我仍然有同样的错误让我担心的是没有正确加载简单的表达式我仍然得到结果为 {{hello world}} 这就是我认为它的原因控制器问题
    • @Artur,那是因为你有更多的错误:你有$routerProvider(不是$routeProvider),你有{{hello world}},而你可能是指Hello {{world}}。为了将来参考,请从 Angular 脚本中删除 .min 以便于调试
    • 谢谢你我修复了即使控制器'viewConroller'没有引号但现在我得到多个错误
    • 您仍然会在使用{{hello world}} 绑定时遇到错误,因为它在控制器控制的视图中寻找与之匹配的$scope 值。如果您将其更改为{{ helloWorld }},那么在您的myCtrl 控制器中有类似$scope.helloWorld = "Hello World"; 的内容,那么它应该可以工作。
    • 如果我写 {{'hello world'}} 你是对的,但现在我得到了 Failed to load directory.html 和 Unexpected token >
    【解决方案2】:

    您需要加载 ngRoute 作为模块依赖项。 在这里查看:https://docs.angularjs.org/api/ngRoute/service/$routeParams

    var app=angular.module('app',[
      'ngRoute'
    ]);
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    • 2023-03-19
    • 1970-01-01
    • 2018-12-20
    相关资源
    最近更新 更多