【发布时间】:2015-05-06 19:30:34
【问题描述】:
我无法通过 $routeProvider 和 $location.path() 从 log.html 重定向到 index.html,并且添加时出错(log.html 的控制器运行一千次),有人可以告诉我哪里出了问题在这里:/
我的应用结构
node_modules
view
-log.html
-index.html
server.js
package.json
将 log.html 文件作为客户端
<script type="application/javascript">
socket = io.connect('http://localhost:1337/');
angular.module('Log',['ngRoute'])
.config(['$routeProvider','$locationProvider', function($routeProvider,$locationProvider){
$locationProvider.html5Mode(true).hashPrefix('!');
$routeProvider
.when('/main', {
templateUrl: '/view/index.html'
});
}])
.controller('LogCtrl',['$scope','$location', function($scope,$location){
console.log('ok baby !!');
$scope.addUser = function(){
socket.emit('init',$scope.user);
$location.path("/main");
};
}]);
</script>
<body >
<div class=" main" ng-controller = "LogCtrl" style = "width: 300px; ">
<fieldset>
<form ng-submit = "addUser()">
<h2 >Hello!!</h2>
<input ng-model = "user" required style = "width: 200px; " placeholder = "Nhập tên của bạn" >
<input type = "submit" value = "OK">
<view></view>
</form>
</fieldset>
</div>
和我的服务器端
var app = require('http').createServer(handler)
, io = require('socket.io').listen(app)
, fs = require('fs');
app.listen(1337);
function handler (req, res) {
fs.readFile('./view/log.html',
function (err, data) {
if (err) {
res.writeHead(500,{'Content-Type': 'text/html'});
return res.end('Error loading log.html');
}
res.writeHead(200);
res.end(data);
});
}
【问题讨论】:
-
到底是什么错误?你在控制台中得到了什么?
-
这是“好的宝贝!!”循环一千次pan>
-
虽然网址是:localhost:1337/main,但网站仍然是 log.html
-
看起来
handler函数被调用了很多次,反复向视图发送log.html(及其脚本)。奇怪,我不知道它为什么会这样做。也许错误在其他地方。 -
你确定语法吗?你不是用快递吗?我检查了我的一个工作文件,我得到了:
app = express(); server = require('http').createServer(app); io = require('socket.io').listen(server); server.listen(port)
标签: javascript angularjs node.js sockets