未知提供者:DashboardServiceProvider < - DashboardService < - DashboardController
即使我根据我的问题阅读了很多解决方案,仍然有此错误。 这是我的控制器:未知提供者:DashboardServiceProvider < - DashboardService < - DashboardController
@Controller
@RequestMapping("/dashboard")
public class DashboardController {
\t @RequestMapping(value = "", method = RequestMethod.GET)
\t public HttpEntity<String> dashboard() {
\t \t SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); \t
\t \t return new HttpEntity<String>("Today is " + sdf.format(new Date()));
\t }
\t
}
这是我的index.jsp
<body ng-app="dashboard">
\t
\t <div ng-controller="DashboardController">
\t <p>Nome: <input type="text" ng-model="nome"></p>
\t <p>Cognome: <input type="text" ng-model="cognome"></p>
\t <input type="button" value="LOGIN" ng-click="login()"/>
\t </div>
\t
\t <jsp:include page="includes.jsp"></jsp:include>
\t
\t <div ng-show="value==1">
\t \t {{data}}
\t </div>
\t <div ng-show="value==0">
\t \t {{ResponseDetails}}
\t </div>
\t
\t
</body>
这是我的模块
var Dashboard = angular.module('dashboard', ['DashboardService'])
\t .config(['$routeProvider', '$locationProvider',
\t \t function ($routeProvider, $locationProvider) {
\t \t \t $locationProvider.html5Mode(true);
\t
\t \t \t $routeProvider.when('/dashboard', {
\t \t \t \t templateUrl: '/WEB-INF/pages/dashboard.jsp',
\t \t \t \t controller: 'DashboardController'
\t \t \t });
\t \t }]);
我的服务
Dashboard.factory('DashboardService', function ($http) {
return {
dashboard: function(successCallback, errorCallback) {
\t \t $http.get("/dashboard")
\t \t \t .success(
\t \t \t \t function (response) {
\t \t \t \t \t $scope.data = response;
\t \t \t \t }
\t \t \t ).error(
\t \t \t function (response) {
\t \t \t \t $scope.data = "ERROR!";
\t \t \t }
\t \t )
\t }
}
});
最后我控制器
angular.module("dashboard", [])
\t .controller('DashboardController', function ($scope, DashboardService) {
\t \t $scope.nome = "Daniele";
\t \t $scope.cognome = "Comandini";
\t \t
\t \t var data = {
\t \t \t nome: $scope.nome,
\t \t \t cognome: $scope.cognome
\t \t };
\t \t
\t \t $scope.value = 0;
\t \t
\t \t var login = function() {
\t \t \t alert("LOGIN ON DASHBOARD");
\t \t \t \t
\t \t \t DashboardService.dashboard();
\t \t };
\t \t
\t \t $scope.login = login;
\t \t \t
\t });
我的JSP页面只能将请求发送到DashBoardcontroller,它已经返回带有当前日期的页面dashboard.jsp。
谢谢。
您不能在模块中注入依赖关系。像service
,factory
这样的依赖关系必须注入到控制器中。顺便说一下,不要忘记注入ngRoute
。
模块变为:
var Dashboard = angular.module('dashboard', ['ngRoute'])
.config(['$routeProvider', '$locationProvider',
function ($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider.when('/dashboard', {
templateUrl: '/WEB-INF/pages/dashboard.jsp',
controller: 'DashboardController'
});
}]);
控制器代码是好的,只是一两件事:如果你想使用一个代码编译像咕噜,咕嘟咕嘟或的WebPack,不要忘了添加您的依赖作为字符串:
angular.module('dashboard')
.controller('DashboardController', ['$scope', 'DashboardService'], function ($scope, DashboardService) {
感谢您的建议。 –
欢迎!它解决了你的问题吗? – Zooly
现在我有另一个错误,错误:$ injector:modulerr 模块错误,并阅读它给我的链接,它从版本1.2.x谈到ng-route成为一个单独的模块,我必须导入。我做到了,我有一个文件includes.jsp,其中我指定了angular.min.js和angular-route.min.js的位置。我该如何解决它? –
解决它! 我复制你的控制器与服务注入
.controller('DashboardController', ['$scope', 'DashboardService'], function ($scope, DashboardService) {
但最终我不得不写这
Dashboard.controller('DashboardController', ['$scope', 'DashboardService' , function ($scope, DashboardService) {
\t \t $scope.nome = "Daniele";
\t \t $scope.cognome = "Comandini";
\t \t
\t \t var data = {
\t \t \t nome: $scope.nome,
\t \t \t cognome: $scope.cognome
\t \t };
\t \t
\t \t $scope.value = 0;
\t \t
\t \t var login = function() {
\t \t \t alert("LOGIN ON DASHBOARD");
\t \t \t \t
\t \t \t DashboardService.dashboard();
\t \t };
\t \t
\t \t $scope.login = login;
\t \t \t
\t }]);
我的意思是我必须包括函数转换为[],而不是外部。 无论如何非常感谢你的答复,因为他们帮助了我很多。
对不起,我忘了问题:当我加载index.jsp时,我在控制台上看到以下错误: –
错误:[$ injector:unpr] http://errors.angularjs.org/1.3.14/$ injector/unpr?p0 = DashboardServiceProvider%20%3C-%20DashboardService%20%3C-%20DashboardController –