У меня проблема с моим JS-файлом, использующим AngularJS: «Ошибка: [ng: areq]» - PullRequest
0 голосов
/ 17 апреля 2019

Я выполняю формирование AngularJS, и когда я запускаю приложение, оно каждый раз выдает мне эту ошибку.Я смотрю на это долгое время, и я не могу узнать.Я уже проверил имена файлов и модулей.Есть идеи?

Ошибка: http://prntscr.com/nd45d2

Файл: app.blade.php

<!DOCTYPE html>
<html lang="en" ng-app="app">
    ...
    <div ng-view> </div>

    @if(Config::get('app.debug'))
        <script src="{{ asset('build/js/vendor/jquery.min.js') }}"></script>
        <script src="{{ asset('build/js/vendor/angular.min.js') }}"></script>
        <script src="{{ asset('build/js/vendor/angular-route.min.js') }}"></script>
        <script src="{{ asset('build/js/vendor/angular-resource.min.js') }}"></script>
        <script src="{{ asset('build/js/vendor/angular-animate.min.js') }}"></script>
        <script src="{{ asset('build/js/vendor/angular-messages.min.js') }}"></script>
        <script src="{{ asset('build/js/vendor/ui-bootstrap-tpls.min.js') }}"></script>
        <script src="{{ asset('build/js/vendor/navbar.min.js') }}"></script>
        <script src="{{ asset('build/js/vendor/angular-cookies.min.js') }}"></script>
        <script src="{{ asset('build/js/vendor/query-string.js') }}"></script>
        <script src="{{ asset('build/js/vendor/angular-oauth2.min.js') }}"></script>
        <script src="{{ asset('build/js/vendor/ui-bootstrap-tpls.min.js') }}"></script>

        <script src="{{asset('build/js/app.js')}}"></script>

        <!-- Controllers -->
        <script src="{{asset('build/js/controllers/login.js')}}"></script>
        <script src="{{asset('build/js/controllers/home.js')}}"></script>
        <script src="{{asset('build/js/controllers/client/clientList.js')}}"></script>

        <!-- Services -->
        <script src="{{asset('build/js/services/client.js')}}"></script>

    @else
        <script src="{{ elixir('js/all.js') }}"></script>
    @endif

    <!-- Routes -->
    <script src="{{asset('build/js/app.js')}}"></script>

</body>
</html>

Файл: app.js

var app = angular.module('app', ['ngRoute', 'ngAnimate', 'angular-oauth2', 'ui.bootstrap.tpls', 'app.controllers', 'app.services']);

angular.module('app.controllers', ['ngMessages', 'angular-oauth2']);
angular.module('app.services', ['ngResource']);

app.provider('appConfig', function () {
   var config = {
       baseUrl: 'http://localhost:8000'
   };

   return{
       config: config,
       $get: function(){
           return config;
       }
   }
});

app.config([
    '$routeProvider', 'OAuthProvider', 'OAuthTokenProvider', 'appConfigProvider',
    function($routeProvider, OAuthProvider, OAuthTokenProvider, appConfigProvider){
    $routeProvider
        .when('/login',{
            templateUrl: 'build/views/login.html',
            controller: 'LoginController'
        })
        .when('/home',{
            templateUrl: 'build/views/home.html',
            controller: 'HomeController'
        })
        .when('/clients',{
            templateUrl: 'build/views/client/list.html',
            controller: 'ClientListController'
        });
    OAuthProvider.configure({
        baseUrl: appConfigProvider.config.baseUrl,
        clientId: 'app',
        clientSecret: 'secret', //optional
        grantPath: 'oauth/access_token' //'oauth/token'
    });
    OAuthTokenProvider.configure({
        name: 'token',
        option:{
            secure: false
        }
    });
}]);

app.run(['$rootScope', '$window', 'OAuth', function ($rootScope, $window, OAuth) {
    $rootScope.$on('oauth:error', function (event, rejection) {
        // Ignore 'invalid_grant' error - should be catched on 'LoginController
        if('invalid_grant' === rejection.data.error){
            return;
        }

        // Refresh token when a 'invalid_token' error occurs
        if('invalid_token' === rejection.data.error){
            return OAuth.getRefreshToken();
        }

        return $window.location.href = '/login?error_reason=' + rejection.data.error;
    });
}]);

Файл: home.js

angular.module('app.controllers')
    .controller('HomeController', ['$scope', function ($scope) {

    }]);

Ответы [ 2 ]

0 голосов
/ 17 апреля 2019

Вероятно, ошибка возникает из-за того, что build/js/app.js загружается дважды:

  • При первой загрузке перед контроллерами
  • Во второй раз при загрузке после <!-- Routes --> комментария.

Попробуйте удалить вторую загрузку build/js/app.js, чтобы узнать, является ли это основной причиной.

0 голосов
/ 17 апреля 2019

Если вы внимательно посмотрите на консоль, там на самом деле написано: «HomeController - это не функция»

Я думаю, что (потому что я не вижу, чтобы вы включили его в любом месте), вызабыл определить ваши контроллеры в Angular.

Я никогда не использовал Angular (или любой из этих видов фреймворков), поэтому могу ошибаться, но после небольшого возни в сети я наткнулся на это:

   function studentController($scope) {
      $scope.student = {
         firstName: "Mahesh",
         lastName: "Parashar",

         fullName: function() {
            var studentObject;
            studentObject = $scope.student;
            return studentObject.firstName + " " + studentObject.lastName;
         }
      };
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...