有几个与此问题相关的帖子,但到目前为止我还没有找到解决方案。以下是Brad Dayley" Node.js第408-409页上的示例的略微修改。 MongoDB和Angular Web开发" (原版,不是第二版)。设置如下。
创建一个名为" 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");
接下来,在"静态"子目录(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>
接下来,在&#34; js&#34;子目录将以下文件放在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
您将在node_server.js&#34;中看到消息&#34;在此之后立即出现在终端中。
现在在http://localhost/first.html上打开网络浏览器。点击&#34;消息&#34;按钮。你会看到&#34;消息:Hello One One!&#34;出现在浏览器中,但终端中没有其他内容,即行
console.log(&#34;在first.html&#34;);
first.js中的不会输出任何内容。所以问题是:这是为什么?
我尝试过使用静态&#34;作为first.js的第一行,但它没有帮助。
我猜测在控制器功能中使用console.log()无效的事实是Angular的固有设计特性,没有任何人可以做的事情来覆盖它。有谁知道这是否正确?