Javascript AngularJS:无法解析指令控制器中的服务
我在解决指令控制器内的服务时遇到问题 我对Angular是个新手,所以如果我做得完全错误,请原谅 我在这里编写了一个示例应用程序:plnkr.co/edit/q97ddx8wa4ulvveqvy6?p=preview 我的问题基本上是在线的。我不知道如何将指令的控制器引用传递给我需要的服务 如果你不想跳出网站,以下是JS:Javascript AngularJS:无法解析指令控制器中的服务,javascript,angularjs,angularjs-directive,angularjs-service,Javascript,Angularjs,Angularjs Directive,Angularjs Service,我在解决指令控制器内的服务时遇到问题 我对Angular是个新手,所以如果我做得完全错误,请原谅 我在这里编写了一个示例应用程序:plnkr.co/edit/q97ddx8wa4ulvveqvy6?p=preview 我的问题基本上是在线的。我不知道如何将指令的控制器引用传递给我需要的服务 如果你不想跳出网站,以下是JS: angular.module('reportApp', ['reportUtils']) .controller('reportCtrl', function() {
angular.module('reportApp', ['reportUtils'])
.controller('reportCtrl', function() {
})
.directive('checkSummary', function() {
return {
restrict: 'E',
scope: {
ctype: '@type'
},
controller: ['$scope', 'complianceLookup',
function($scope, complianceLookup) {
// This is where I'm having trouble
$scope.niceName = complianceLookup.shortToNice($scope.ctype);
console.log($scope.niceName);
}
],
template: '<h1>who cares</h1>'
}
});
angular.module('reportUtils', [])
.factory('complianceLookup', function() {
var c = {
NC: 'Not Compliant Checks',
C: 'Compliant Checks',
TBD: 'Checks Requiring Further Analysis',
NA: 'Not Applicable',
M: 'Manual Checks'
};
var shortToNice = function(short) {
try {
return c[short.toUpperCase()];
} catch (e) {
return '??';
}
}
});
<!DOCTYPE html>
<html ng-app="reportApp">
<head>
<script data-require="angular.js@*" data-semver="1.2.13" src="http://code.angularjs.org/1.2.13/angular.js"></script>
<link href="style.css" rel="stylesheet" />
<script src="script.js"></script>
</head>
<body ng-controller="reportCtrl">
<h1>Hello Plunker!</h1>
<check-summary type="c"></check-summary>
</body>
angular.module('reportApp',['reportUtils']))
.controller('reportCtrl',function(){
})
.directive('checkSummary',function(){
返回{
限制:'E',
范围:{
ctype:“@type”
},
控制器:['$scope','complianceLookup',
功能($scope,complianceLookup){
//这就是我遇到麻烦的地方
$scope.niceName=complianceLookup.shortToNice($scope.ctype);
log($scope.niceName);
}
],
模板:“谁在乎?”
}
});
angular.module('reportUtils',[])
.factory('complianceLookup',函数(){
变量c={
NC:“不符合检查”,
C:‘合规检查’,
待定:“需要进一步分析的检查”,
不适用:“不适用”,
M:‘手工检查’
};
var shortToNice=功能(短){
试一试{
返回c[short.toUpperCase()];
}捕获(e){
返回“??”;
}
}
});
你好,普朗克!
您没有返回您的函数
angular.module('reportUtils', [])
.factory('complianceLookup', function() {
var c = {
NC: 'Not Compliant Checks',
C: 'Compliant Checks',
TBD: 'Checks Requiring Further Analysis',
NA: 'Not Applicable',
M: 'Manual Checks'
};
var shortToNice = function(short) {
try {
return c[short.toUpperCase()];
} catch (e) {
return '??';
}
}
return {shortToNice: shortToNice}
});
哇,哈哈。非常感谢。这是我制造的第一家工厂,请原谅我的错误。我还得再等8分钟才能授予你冠军。我认识到了这个错误,因为我犯了很多次:)