在AngularJS中为npm包angular-credit-cards注入提供商参数失败



我已经从github存储库https://github.com/bendrucker/angular-credit-cards修改了plunkr示例plnkr。我遇到的问题是,我不知道如何让函数的第二个参数(信用卡)为null以外的任何东西。我相信我用的是正确的,但显然有些地方错了。

plnkr: http://plnkr.co/edit/YHbbluTtB1Fd2d3lChL8?p=preview

angular.module('ccDemoApp', ['credit-cards'])
  .controller('SettingsController2', ['$scope', SettingsController2]);
function SettingsController2($scope,creditcards) {
  if (creditcards){
    alert('creditcards defined');
  } else {
    alert('creditcards not defined. problem')
  }
}

根据文档,要么使用模块,要么包含代码,然后引用模块名。我没有看到你在任何地方包括代码,所以信用卡是空的。

//为了方便,node模块导出字符串'angular-credit-cards'角。模块("myApp",要求("angular-credit-cards")]);//否则,先包含代码,再包含模块名角。模块("myApp","信用卡"]);

问题在于控制器的声明。您正在使用注入数组,但忘记将依赖项名称作为字符串包含在内。应该是

.controller('SettingsController2', ['$scope', 'creditcards', SettingsController2]);

我不鼓励人们使用这种语法,因为它容易出现这样的错误,并且在阅读时不清晰。如果你已经在使用缩小功能你可以使用ngAnnotate

最新更新