【问题标题】:$location.path() and $routeProvider not working$location.path() 和 $routeProvider 不工作
【发布时间】: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


【解决方案1】:

我能做的就是声明一个主要状态

state('main', {
 url : '/',
 templateUrl : '/main.html'
}

你应该这样做重定向

$location.path("/");

【讨论】:

    猜你喜欢
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-14
    相关资源
    最近更新 更多