Веб-страница AngularJS не может найти ссылочный угловой модуль или контроллер - PullRequest
0 голосов
/ 25 апреля 2018

Извините за возможный репост, но я не знаю, как еще написать это.Я использовал этот веб-сайт для создания небольшой веб-страницы angularJS, используя также nodeJS, и я дошел до того, что отделил угловой код от вида или HTML.Я обнаружил, что когда я пытался разделить их, ничего не работало.

Вот мой код:

Home.html:

<!DOCTYPE html>
<html lang="en-US">

<head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
    <!-- <script>
        var myApp = angular.module('myApp', []).controller('myCtrl', function($scope) {
            $scope.firstName = "John";
            $scope.lastName = "Doe";
            $scope.myColor = "red";
        });
    </script> -->
</head>

<body>


    <!-- <script>
        myApp.directive('myDirective', function() {
            return {
                template: "This is a test directive."
            };
        })
    </script> -->


    <h2>myApp Test</h2>
    <div ng-app="myApp" ng-controller="myCtrl" ng-init="quantity = 10; cost = 5">
        <p>Color: <input type="text" style="background-color:{{myColor}}" ng-model="myColor" value="{{myColor}}"></p>
        <p>Total in dollar (raw exp): {{quantity * cost}}</p>
        <p>Total in dollar (span): <span ng-bind="quantity * cost"></span></p>
        <p> First Name: <input type="text" ng-model="firstName"></p>
        <p> Last Name: <input type="text" ng-model="lastName"></p>
        <h1>Hello, {{firstName + " " + lastName}}</h1>
    </div>
    Are you even changing?!
</body>
<script type="javascript" src="../JS/myApp.js"></script>
<!-- <script type="javascript" src="../JS/myApp.module.js"></script> -->
<script type="javascript" src="../JS/myCtrl.js"></script>
<!-- <script type="javascript" src="../JS/myCtrl.component.js"></script> -->


</html>

myApp.js / myApp.module.js:

var myApp = angular.module('myApp', []);

myCtrl.js / myCtrl.component.js :

myApp.controller('myCtrl', function($scope) {
    $scope.firstName = "John";
    $scope.lastName = "Doe";
    $scope.myColor = "red";
});

// app.directive('myDirective', function() {
//     return {
//         template: '<p><h3>This is a test directive.<h3></p>'
//     };
// });

Наконец, вот моя иерархия папок:

enter image description here


Если то, что я сделал неправильно, уже очевидно,вам не нужно продолжать читать.

Теперь закомментированный код также важен.Это и другие вещи, которые я пробовал, и то, что я хотел реализовать.Я попытался:

  1. Повторно добавить весь угловой код обратно в тег head, чтобы убедиться, что он все еще работает.Это работало, за исключением директивы (которая, я думаю, должна была бы быть частью отдельного модуля, но, тем не менее, не имела значения).
  2. Перемещение ссылок на скрипты, которые есть и были, расположенный ниже тела, к голове.
  3. Перемещение ссылок на скрипт в верхнюю часть тела.
  4. Перемещение всего в один * один * файл (myApp.module.js).
  5. Переименование обоих «myCtrl.component.js» и «myApp.module.js» в «myCtrl.js» и «myApp.js», соответственно, чтобы гарантировать, что номенклатура angularJS, возможно, устарела, не является атрибуцией.
  6. Добавление "type =" javascript "" в ссылки на сценарии.
  7. "Жесткое обновление", чтобы убедиться, что старые документы не были кэшированы.
  8. Протестировано, чтобы увидеть,даже запрашивал файлы с сервера, используя узел.Не похоже, что это так.

Если вам нужна часть nodeJS, она тоже здесь ( index.js ):

var http = require('http');
var url = require('url');
var fs = require('fs');
var path = require('path');

http.createServer(function(req, res) {
    var myUrl = url.parse(req.url);
    var basename = path.basename(myUrl.path);
    console.log('request url: ' + req.url);
    console.log('url path: ' + myUrl.path);
    console.log('basename: ' + basename);
    fs.readFile('../HTML/Home.html', function(err, data) {

        res.writeHead(200, { 'ContentType': 'text/html' });
        res.write(data);
        res.end();

    });
    }).listen(8080);

1 Ответ

0 голосов
/ 25 апреля 2018

Проблема в теге вашего скрипта

<script type="javascript" src="../JS/myCtrl.js"></script>

Оно должно не быть

      type="javascript"

Либо измените его на

     type="text/javascript"

или удалите тип полностью.Из-за неправильного типа он не загружает контроллер и другие js-файлы в браузер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...