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

Why am I getting $injector:unpr (unknown provider) in this single page app?

本文关键字:提供商 应用程序 单页 未知 injector unpr 为什么      更新时间:2023-09-26

写一个单页的angular应用,但是我得到了注入器错误(未知提供商)。我还需要做些什么来让angular意识到我的控制器吗?

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";
});

像这样修改

 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>

var app = angular.module('AvailablePets', [])
    app.controller('homeController', function( $scope ) {
        console.log('App Home Controller');
        // Controller Logic
        $scope.pet = "Dog";
    });
<!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>

使用Inline Array Annotation在angular中注入依赖

改为

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

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

在你的例子中,你可以删除var app并直接定义你的模块,或者像这样定义你的控制器app.controller。

相关文章: