我意識到這裏有幾個關於這個問題的答案,但我似乎無法讓他們與我的設置一起工作。這是我試圖實現(不是我自己的工作)一Plunker:http://plnkr.co/edit/Ofq7Md8udEnIhAPF1NgL?p=preview在AngularJS中使用JSON作爲服務
目前,我已經爲我的index.html文件:
<body ng-app="HomeCourtArenaApp">
<div class="container" ng-view></div>
<script src="components/angular/angular.js"></script>
<script src="components/require/require.js"></script>
<script src="components/angular/angular-resource.js"></script>
<script src="scripts/services/data.js"></script>
<script src="scripts/app.js"></script>
</body>
要註冊組件,我已經定義了他們在karma.conf.js文件:
files = [
JASMINE,
JASMINE_ADAPTER,
'app/components/angular/angular.js',
'app/components/angular/angular-resource.js',
'app/components/angular-mocks/angular-mocks.js',
'app/scripts/*.js',
'app/scripts/**/*.js',
'test/mock/**/*.js',
'test/spec/**/*.js'
];
然後,爲了創建服務,我用這似乎是大多數在線的例子證明了同樣的技術:
'use strict';
angular.module('jsonData', ['ngResource'])
.factory('jsonData', function($resource) {
return $resource('data/shoe3Dconfig.js');
});
如果一個錯誤似乎是被觸發是,當我嘗試在我的「應用」變量定義服務,其中添加服務名稱停止內容加載[「jsonData」]:
「使用嚴格的」;
var app = angular.module('HomeCourtArenaApp', ['jsonData']);
app.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/main.html',
controller: 'MainCtrl'
})
.otherwise({
redirectTo: '/'
});
});
我會分享我的看法和控制器也,但在此之前我甚至可以在我的模板中使用JSON數據,有錯誤的處理與超凡脫俗的量:
Uncaught Error: Module name "path" has not been loaded yet for context: _. Use require([])
Uncaught Error: Mismatched anonymous define() module: function() {
return getStyleProperty;
}
Uncaught Error: No module: ngResource
有一些其他錯誤也是如此,但這些似乎主要是因爲DOM後面的腳本正在阻止它們正確加載。任何幫助將是偉大的!
您已將您的模塊和工廠命名爲'jsonData'。你發佈的例子有一個你也需要的套管差異。或者給服務/模塊一個不同的名字,以免混淆兩者。對你的(非工作)代碼進行調查也是一件好事。 – codemonkey
我已經做了一個基本的Plunker,但是因爲我在Plunker中看不到控制檯,所以很難判斷它是否確切:http://plnkr.co/edit/uPE78I0m90jjmpBL50LK?p=preview – JohnRobertPett