无法从控制器访问工厂中的AngularJS功能

时间:2016-08-09 09:03:24

标签: javascript angularjs

我对角js很新。 任何人都可以打电话给我,为什么我得到一个错误,说无法从控制器访问工厂中的功能。

  

错误:UserService.getAllCustomers不是函数

添加

时会发生这种情况
  App.service('UserService', function () { })

到控制器。 如果没有添加,则提供

  

错误:[$ injector:unpr]未知   provider:serServiceProvider< -UserService< - UserController

2 个答案:

答案 0 :(得分:0)

你应该喜欢:

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


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

         }]);

答案 1 :(得分:0)

userService没有“getAllCustomers”

  var App= angular.module('myApp', []);

    App.controller("MyCtrl", ['UserService', function(UserService) {
      UserService.getAllCustomers();
    }]);

    App.service('UserService', function() {
      this.getAllCustomers = function() {
        alert('getAllCustomers');
      }
    });

DEMO

注意:如果您从应用程序中删除了“UserService”,那么UserService在应用程序中不可用,但是您被注入控制器然后angular将检查UserService是否已创建,如果未创建,它将抛出错误如错误:

  

[$ injector:unpr]未知提供者:serServiceProvider< -UserService< -   UserController的