Файл внешнего контроллера angularjs приводит к ошибке «angular не определен» - PullRequest
0 голосов
/ 03 мая 2018

У меня есть следующий контроллер, определенный во внешнем файле, но когда я пытаюсь запустить свой сервер узлов, я получаю ошибку «angular is notfined».

vaultcontroller.js

angular.module('demoapp.vaultcontroller', [])
.controller('vaultcontroller', function($scope, appFactory){

    console.log("INSIDE APP CONTROLLER.");

    $("#success_holder").hide();
    $("#success_create").hide();
    $("#error_holder").hide();
    $("#error_query").hide();

    $scope.get_all_currencies_from_vault = function(){
        console.log("VAULT CONTROLLER IS CALLED -1 ");
        appFactory.queryAllTuna(function(data){
            var array = [];
            for (var i = 0; i < data.length; i++){
                parseInt(data[i].Key);
                data[i].Record.Key = parseInt(data[i].Key);
                array.push(data[i].Record);
            }
            array.sort(function(a, b) {
                return parseFloat(a.Key) - parseFloat(b.Key);
            });
            $scope.all_tuna = array;
        });
    }
});

Вот пакет.json

"dependencies": {
    "angular": "1.6.5",
    "angular-route": "1.6.5",
    "body-parser": "latest",
    "ejs": "latest",
    "express": "latest",
    "fabric-ca-client": "^1.0.2",
    "fabric-client": "^1.0.2",
    "grpc": "1.11.0",
    "morgan": "1.9.0"
},

Это трассировка ошибки:

angular.module('demoapp.vaultcontroller', [])
^

ReferenceError: angular is not defined
    at Object.<anonymous> (D:\Project-code\demo-POC\demopoc\client\vaultcontroller.js:2:1)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (D:\Project-code\demo-POC\demopoc\client\routes.js:5:23)
    at Module._compile (module.js:652:30)

Вот мой index.html импорт

<!-- require jquery and bootstrap scripts -->
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.5/angular.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.5/angular-route.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>

Update-1 Загрузка vaultcontroller

в файле app.js, я сделал следующее.

.when('/vault', {
  templateUrl: 'vault.html',
  controller: 'vaultcontroller'
})

А код для vaultcontroller выложен выше. Затем я сделал следующее в app.js

var demoapp = angular.module('application', ["ngRoute", "application.vaultcontroller"]);

А затем импортировал файл в index.html, используя скрипт.

<!-- requiring the angular page -->
<script type="text/javascript" src="app.js"> </script>
<script type="text/javascript" src="vaultcontroller.js"> </script>

Если вам понадобится больше кода, пожалуйста, дайте мне знать. Новое в угловой

Обновление-2> Решение Хорошо, я получил некоторую помощь от @Aleksey Solovey, и, поскольку он предложил мне установить отдельный серверный http-сервер для доставки моих статических файлов, ранее мой сервер узлов также доставлял статические файлы. Я удалил эту часть из server.js и не получил ни одной из вышеперечисленных ошибок, она начала работать. И у меня сейчас два URL 1. для статического контента> localhost: 8080 2. Для сервера API (записанного в узле, для запуска используется server.js)> localhost: 8000

Спасибо за помощь.

1 Ответ

0 голосов
/ 03 мая 2018

Вам нужно добавить удар

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
...