console.log () не работает внутри углового контроллера - PullRequest
0 голосов
/ 05 июня 2018

Было несколько сообщений, связанных с этой проблемой, но до сих пор я не нашел решения.Ниже приведена небольшая модификация примера на страницах 408-409 книги Брэда Дейли «Node.js. MongoDB и Angular Web Development» (оригинальное издание, а не Второе).Настройка выглядит следующим образом.

Создайте каталог с именем «test» (или как хотите) и в этом каталоге (1) поместите следующий файл node_server.js и (2) создайте подкаталог с именем «static ".

Вот это node_serve.js:

var express = require('express');
var app = express();
app.use('/', express.static('./static')).
    use('/images', express.static( '../images')).
    use('/lib', express.static( '../lib'));
app.listen(80);
console.log("in node_server.js");

Далее, внутри подкаталога" static "(1) поместите следующий файл first.html.и (2) создайте подкаталог с именем "js".

Вот first.html:

<!doctype html>
<html ng-app="firstApp">
  <head>
    <title>First AngularJS App</title>
  </head>
  <body>
    <div ng-controller="FirstController">
      <span>Name:</span>
      <input type="text" ng-model="first">
      <input type="text" ng-model="last">
      <button ng-click='updateMessage()'>Message</button>
      <hr>
      {{heading + message}}
    </div>
    <script src="http://code.angularjs.org/1.2.9/angular.min.js"></script>
    <script src="/js/first.js"></script>
  </body>
</html>

Далее, в подкаталоге "js" поместите следующий файл first.js:

var firstApp = angular.module('firstApp', []);
firstApp.controller('FirstController', function($scope) {
  $scope.first = 'Some';
  $scope.last = 'One';
  $scope.heading = 'Message: ';
  $scope.updateMessage = function() {
    $scope.message = 'Hello ' + $scope.first +' '+ $scope.last + '!';
  console.log("in first.html");
  };
});

Теперь вернитесь в свой тестовый каталог и запустите файл node_server.js с

node node_server.js

Вы увидите сообщение "in node_server.js"сразу после этого появляются в терминале.

Теперь откройте веб-браузер на http://localhost/first.html.Нажмите на кнопку «Сообщение».Вы увидите «Сообщение: Привет, кто-нибудь!»появляются в браузере, но больше ничего не появляется в терминале, то есть строка

console.log ("in first.html");

в first.js ничего не выводит,Итак, квест состоит в следующем: почему это так?

Я пытался поместить "use static" в качестве первой строки first.js, но это не помогает.

Я предполагаю, чтотот факт, что использование console.log () внутри функции контроллера не имеет никакого эффекта, является неотъемлемой особенностью дизайна Angular, и никто не может сделать ничего, чтобы переопределить это.Кто-нибудь знает, правильно ли это?

...