2016-04-16 85 views
0

我正在測試使用創建者創建的離子應用程序。

我把下面的代碼放在services.js

angular.module( 'app.services',[])

.factory('BlankFactory', [function(){ 
}]) 
.factory('EventService', ['$resource', function ($resource) { 
    return $resource('https://.....net/api/events/:id'); 
}]) 
.service('BlankService', [function(){ 
}]); 

而在controllers.js下面的代碼。

angular.module('app.controllers', []) 
...... 
    .controller('nightlifeCtrl', function ($scope, EventService) { 
    $scope.events = EventsService.query({category: "Nightlife"}); 
}) 

Hoever我在js控制檯中出現以下錯誤?

ionic.bundle.js:25642 Error: [$injector:unpr] Unknown provider: $resourceProvider <- $resource <- EventService 
http://errors.angularjs.org/1.4.3/$injector/unpr?p0=%24resourceProvider%20%3C-%20%24resource%20%3C-%20EventService 
    at ionic.bundle.js:13380 
    at ionic.bundle.js:17574 
    at Object.getService [as get] (ionic.bundle.js:17721) 
    at ionic.bundle.js:17579 
    at getService (ionic.bundle.js:17721) 
    at Object.invoke (ionic.bundle.js:17753) 
    at Object.enforcedReturnValue [as $get] (ionic.bundle.js:17615) 
    at Object.invoke (ionic.bundle.js:17762) 
    at ionic.bundle.js:17580 
    at getService (ionic.bundle.js:17721) 

我試圖通過angular.module('...', ['ngResource'])添加依賴項,但它有以下錯誤。

ionic.bundle.js:17697 Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to: 
Error: [$injector:modulerr] Failed to instantiate module app.controllers due to: 
Error: [$injector:modulerr] Failed to instantiate module ngResource due to: 

而我沒有在js文件中找到文件angular-resource.js。我應該避免使用ngResource並使用普通的ajax調用嗎?

index.html

<script src="js/app.js"></script> 
<script src="js/controllers.js"></script> 
<script src="js/routes.js"></script> 
<script src="js/services.js"></script> 
<script src="js/directives.js"></script> 

回答

0

它不工作,因爲你沒有加載angular-resource依賴。如果要以角度使用外部模塊,則需要通過將第二個數組參數中的模塊名稱傳遞到angular.module,將其作爲模塊定義中的依賴項加載。在你的情況下,該模塊的名稱是ngResource。加載腳本文件angular-resource.js,然後將其添加爲如下依賴性:

angular.module('app.services', ['ngResource']) 

而且我看你有沒有在app.controller加載app.services的依賴。您需要可以加載依賴或您的應用程序定義模塊作爲加載這兩個依賴:

angular.module('app', [ 
    'app.services', 
    'app.controllers' 
]); 

更新JSBIN與修復控制檯錯誤

你的代碼也有一個錯字。您指的是您的控制器中的EventsService,名稱爲EventService。我在jsbin中修復了這個錯誤

+0

下面的代碼在app.js'angular.module('app',['ionic','app.controllers','app.routes','app。服務','app.directives'])'。但是,它似乎默認離子不具有angular-resource.js? – ca9163d9

+0

離子束沒有「角度資源」。它只有'angular'和'angular-ui/ui-router'。所以你需要明確地添加這個依賴關係。這能解決你的問題嗎? –

+0

我可以將另一版本的angular-resource.js複製到離子js文件夾嗎? – ca9163d9

相關問題