2015-07-05 59 views
0

我使用Yeomen創建了一個使用腳手架的角度應用程序。我想o從我的REST服務發送並獲取數據,但是我遇到了資源提供者的問題。AngularJS中的未知資源提供程序

我有一個簡單的控制器:

angular.module('fronterApp') 
    .controller('ClubCtrl', function ($scope, ClubService) { 
    $scope.find = function(){ 
    $scope.club = ClubService.find(); 
    }; 
    }); 

服務:

var app = angular.module('fronterApp'); 
app.service('ClubService', function (ClubResource) { 

    var find = function(){ 
     return ClubResource.find({id: 1}); 
    }; 

    return{ 
     find: find 
    }; 
    }); 

我的資源提供者:

var app = angular.module('fronterApp', ['ngResource', 'ngRoute']); 
var server = 'http://localhost:8080'; 
app.run(function($http) { 
    $http.defaults.headers.common['Content-Type'] = 'application/x-www-form-urlencoded'; 
    $http.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; 
}); 
app.factory('ClubResource', function($resource) { 
    return $resource(server + '/api/clubs/:id', {id: '@id'}); 
}); 

現在我想在控制器的數據,使用服務,使用提供者。但經過運行的應用程序,JS控制檯說:

Error: [$injector:unpr] Unknown provider: ClubResourceProvider <- ClubResource <- ClubService 

我已經加入<script src="bower_components/angular-resource/angular-resource.js"></script>到index.html的,我試圖在服務使用['ngResource'],但沒有任何工程。此外,如果我添加['ngResource']我沒有在控制檯中看到這個錯誤,但沒有顯示來自club.html的html(僅顯示來自服務器的html)的html。我的意思是,沒有視圖加載。 我不知道,爲什麼我的服務無法在這裏注入資源提供者。

UPDATE: 現在,我改變了我的服務:

angular.module('fronterApp') 
    .service('ClubService', function (ClubResource) { 

    var get = function() { 
    return ClubResource.get({id: 1}); 
    }; 

    return { 
    get: get 
    }; 
}); 

和資源(但得到的是默認的,所以我認爲這是不必要的):

var app = angular.module('fronterApp'); 
var server = 'http://localhost:8080'; 
app.run(function ($http) { 
    $http.defaults.headers.common['Content-Type'] = 'application/x-www-form-urlencoded'; 
    $http.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'; 
}); 
app.factory('ClubResource', function ($resource) { 
    return $resource(server + '/api/clubs/:id', {id: '@id'}, { 
    get: { 
     method: 'GET' 
    } 
    }); 
}); 
+0

你改變了'$ scope.club = ClubService.find();'到'$ scope.club = ClubService.get();' –

+0

是的,我做過了。這兩個聯名都不適合我。 – allocer

回答

1

好,我已經解決了這個問題... 我很笨,因爲我有我的工廠在其他文件中,名爲routing.js

var app = angular.module('fronterApp'); 
var server = 'http://localhost:8080'; 

app.factory('ClubResource', ['$resource', function ($resource) { 
    return $resource(server + '/api/clubs/:id', {id: '@_id'}, { 
    }); 
}]); 

我沒有將這個文件添加到index.html中,所以我得到了這個錯誤,因爲Angular找不到需要的代碼的腳本。 現在一切正常。

+0

你能把這個標記爲anwser嗎? –