gpt4 book ai didi

javascript - AngularJS:无法解析指令 Controller 中的服务

转载 作者:行者123 更新时间:2023-11-29 22:03:32 25 4
gpt4 key购买 nike

我在解析指令 Controller 内的服务时遇到问题。

我是 Angular 的新手,所以如果我做错了,请原谅。

我在这里写了一个示例应用程序:plnkr.co/edit/Qu97ddX8wA4ULVveQVy6?p=preview

我的问题基本上在第 15 行。我不知道如何将指令的 Controller 引用传递给我需要的服务。

如果你不想跳出网站,这里是 JS:

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('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}
});

关于javascript - AngularJS:无法解析指令 Controller 中的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22233705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com