Было несколько сообщений, связанных с этой проблемой, но до сих пор я не нашел решения.Ниже приведена небольшая модификация примера на страницах 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, и никто не может сделать ничего, чтобы переопределить это.Кто-нибудь знает, правильно ли это?