シングル ページ アプリに AngularAMD + RequirsJS を使用していますが、app.js ファイルにサービスを挿入するときに問題が発生します。
ここにコード:
login_service.js
define(['app'], function(app) {
'use strict';
app.service('loginService', function($location, $state, Restangular) {
return {
login: function(data, scope) {},
logout: function() {},
isLogged: function() {}
}
});
});
app.js
define(['angularAMD', 'restangular', 'angular-ui-router'], function(angularAMD) {
'use strict';
var app = angular.module('MyApp', ['restangular', 'ui.router', 'loginService']);
app.run(function($rootScope, $state, $stateParams, $location, loginService) {
console.log(loginService)
/*
Error: [$injector:modulerr] Failed to instantiate module MyApp due to: [$injector:modulerr]
Failed to instantiate module loginService due to:
$injector:nomod] Module 'loginService' is not available! You either misspelled the module name or forgot to load it.
*/
});
app.config(function($stateProvider, $urlRouterProvider, $i18nextProvider, RestangularProvider) {
});
});
run 関数で loginService にアクセスしたいのですが、「モジュール MyApp のインスタンス化に失敗しました」というエラー メッセージが表示され続けるためアクセスできません。
次のようにログインサービスファイルをロードしようとしました:
define(['angularAMD', 'restangular', 'angular-ui-router', 'services/login_service'], function(angularAMD) {
});
しかし、その後、アプリがログイン サービスで定義されていないという別のエラーが発生しました。
大変お世話になりました。
デビッド