工厂中的AngularJS函数不能从控制器中访问

AngularJS functions in the factory cannot be accessed from the controller

本文关键字:控制器 访问 不能 函数 AngularJS 工厂      更新时间:2023-09-26

我是angular js的新手。谁能告诉我为什么我得到一个错误说在工厂的功能不能从控制器访问。

错误:UserService。getAllCustomers不是一个函数

当我添加

  App.service('UserService', function () { })

到控制器。如果没有添加这个,它给出

错误:[$injector:unpr]未知提供者:serServiceProvider<-UserService<-用户控件

您应该有如下内容:

angular.module('MyApp')
    .factory('serviceName',[
        function () {
            return function () {
                /*your code */
            };
         }]);

angular.module('MyApp')
    .controller('controllerName',['serviceName'
        function (serviceName) {
         }]);

userService没有"getAllCustomers"

  var App= angular.module('myApp', []);
    App.controller("MyCtrl", ['UserService', function(UserService) {
      UserService.getAllCustomers();
    }]);
    App.service('UserService', function() {
      this.getAllCustomers = function() {
        alert('getAllCustomers');
      }
    });

演示注意:如果你从应用中删除了"UserService",那么这个UserService在应用中是不可用的,但是你被注入到控制器中,那么angular会检查UserService是否被创建,如果它没有被创建,它会抛出error:

[$injector:unpr]未知提供商:serServiceProvider<- userserviceprovider <-用户控件