为什么我在这个单页应用程序中获得$ injector:unpr(未知提供商)?

时间:2016-11-15 17:40:46

标签: javascript angularjs

编写单页角度应用程序,但我收到了Injector Error(未知提供程序)。我是否需要做更多工作才能使我的控制器有角度感知?

HTML:

<div ng-app="AvailablePets" ng-controller="homeController">
  {{pets}}
</div>

JS:

var app = angular.module('AvailablePets', [])
  .controller('homeController', function( $scope ) {
    console.log('App Home Controller');
    // Controller Logic
    $scope.pet = "Dog";
});

3 个答案:

答案 0 :(得分:1)

像这样改变,

 var app = angular.module('AvailablePets', [])
    app.controller('homeController', function( $scope ) {
        console.log('App Home Controller');
        // Controller Logic
        $scope.pet = "Dog";
    });

同样,表达式应为{{pet}}而不是{{pets}}

<body ng-app="AvailablePets" ng-controller="homeController">
  {{pet}}
</body>

<强> DEMO

&#13;
&#13;
var app = angular.module('AvailablePets', [])
    app.controller('homeController', function( $scope ) {
        console.log('App Home Controller');
        // Controller Logic
        $scope.pet = "Dog";
    });
&#13;
<!DOCTYPE html>
<html>

<head>
  <script data-require="angular.js@1.4.7" data-semver="1.4.7" src="https://code.angularjs.org/1.4.7/angular.js"></script>
  <link rel="stylesheet" href="style.css" />
  <script src="script.js"></script>
</head>

<body ng-app="AvailablePets" ng-controller="homeController">
  {{pet}}
</body>

</html>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

使用Inline Array Annotation以角度

注入依赖项

更改为

 var app = angular.module('AvailablePets', [])
      .controller('homeController',['$scope', function( $scope ) {
        console.log('App Home Controller');
        // Controller Logic
        $scope.pet = "Dog";
    }]);

答案 2 :(得分:0)

有时忘记使用标签中的src属性引用你的js文件也会导致这种错误。

在您的情况下,您可以删除var app并直接定义模块,也可以像这个app.controller一样定义控制器。它们都很好。