javascript - 将服务注入(inject)指令返回未定义

标签 javascript angularjs

我正在向指令中注入(inject)一个服务,在某些情况下该服务返回未定义的任何人都可以解释我做错了什么吗?

这是下面代码的一个plunker。 https://plnkr.co/edit/H2x2z8ZW083NndFhiBvF?p=preview

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

app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
$scope.players = ["A","B","C"];
});

app.factory('PlayerListS', [function() {
    var playerList = [];

    function getList() {
        return playerList;
    }
    function addToList(name) {
        playerList.push(name);
    }

    return {
        addToList :addToList,
        getList: getList
    }

}]);
app.directive("player",['PlayerListS', function (PlayerListS) {
return {
    restrict: 'E',
    scope: {
        person:'@person',
        add:'&add'
    },
    replace: false,
    templateUrl: "player.html",
    controller: function($scope, $element, $compile) {
          $scope.add = function(name) {
              PlayerListS.addToList(name);
              console.log(PlayListS.getList());
          }
    }
};
}]);

最佳答案

您的控制台中存在拼写错误,导致代码抛出错误。按照以下方式更改指令

app.directive("player",['PlayerListS', function (PlayerListS) {
    return {
        restrict: 'E',
        scope: {
            person:'@person',
            add:'&add'
        },
        replace: false,
        templateUrl: "player.html",
        controller: function($scope, $element, $compile) {
              $scope.add = function(name) {
                debugger;
                  PlayerListS.addToList(name);
                  console.log(PlayerListS.getList());
              }
        }
    };
}]);

工作演示:https://plnkr.co/edit/HhmOYyoZAhm6vvXp3puC?p=preview

关于javascript - 将服务注入(inject)指令返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45085741/

相关文章:

javascript - JS : Refactor multi-callback function into promise

javascript - 如何知道 react native 应用程序是否进入后台?

javascript - 'array[array.length - 1] = array.pop()' 会产生未定义的行为吗?

javascript - Angular 形式双重发布(html 中没有另一个 ng-controller)

angularjs - 将 Angular Material 与 twitter bootstrap 相结合而不会发生冲突

javascript - 创建一个将数字放在数组中间的函数

javascript - 将 AngularJS 中的时间戳格式化为自定义要求

javascript - angularjs随 secret 码生成器至少一个大写小写数字和特殊字符

javascript - 服务需要方法吗?注入(inject) Controller 失败

javascript - JavaScript 的完整铁路/语法图