0

私はこれを適切に配線することができないようです。該当する作品を挙げていきます。私の問題は、注入されたリソースにアクセスすることです。それらを参照しようとすると、依存する部分はすべて未定義です。

var app = angular.module('app', ['ngResource','ui.bootstrap', 'ngGrid','app.services', 'app.directives', 'app.controllers'
])
.config(['$routeProvider', function ($routeProvider) {
  return $routeProvider.
      when('/', { templateUrl: 'partials/transaction.view.html', controller: 'TransactionCtrl' }).
      when('/about', { templateUrl: 'partials/about.view.html', controller: 'AboutCtrl' }).
      when('/transaction', { templateUrl: 'partials/transaction.view.html', controller: 'TransactionCtrl' }).
      otherwise({ redirectTo: '/' });
}])
.config(['$httpProvider', function ($httpProvider) {
    return $httpProvider.responseInterceptors.push(['logger', '$rootScope', '$q',
        function (logger, $rootScope, $q) {
            var error, success;
            success = function (response) {
                $rootScope.$broadcast("success:" + response.status, response);
                logger.log("success:" + response.status);
                return response;
            };
            error = function (response) {
                var deferred;
                deferred = $q.defer();
                $rootScope.$broadcast("error:" + response.status, response);
                logger.log("error:" + response.status);
                return $q.reject(response);
            };
            return function (promise) {
                return promise.then(success, error);
            };
        }
    ]);
}])
.run(['$rootScope', 'logger', function ($rootScope, logger) {
  return $rootScope.$on('$routeChangeSuccess', function (event, currentRoute, priorRoute) {
      return $rootScope.$broadcast("" + currentRoute.controller + "$routeChangeSuccess", currentRoute, priorRoute);
        });
 }]);

...コントローラーは次のとおりです。

angular.module('pennyWatch.controllers', ['$scope', '$location','logger', 'ngGrid',     'transactionService']).
controller('TransactionCtrl', [function ($scope, logger, ngGrid, transactionService) {

//code here

}]).
controller('AboutCtrl',[function ($scope, logger) {
    $scope.logEntries = logger.logEntries;
}]);

したがって、指定したリソースはどれも利用できません (すべて未定義): '$scope'、'$location'、'logger'、'ngGrid'、'transactionService'

これに光を当てていただければ幸いです。

ありがとう

4

2 に答える 2

0

モジュールの読み込みをサービス注入と交換していると思います

モジュールを宣言するときは、サービスではなく、括弧内のモジュールの依存関係を渡す関数をpennywatch.controllers呼び出す必要があります。angular.moduleたとえば、アクセスできないサービスの多くはngモジュールにあります。

サービス注入はコントローラーレベルで適用されます

于 2013-09-13T13:21:19.363 に答える