使用Angular.js路由时出现404错误

时间:2014-09-02 01:24:59

标签: javascript html5 angularjs firebase angularfire

我正在尝试使用angular和angularfire设置路由,但遇到了麻烦。

var app = angular.module('sampleApp', ['ngRoute', 'firebase', 'ui.bootstrap']);

app.config(function ($routeProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'index.html',
        controller: 'SampleCtrl'
      })
      .when('/login', {
        templateUrl: 'views/login.html',
        controller: 'LoginCtrl'
      })
      .otherwise({
        redirectTo: '/'
      });

  });

app.controller('LoginCtrl', function($scope, $firebase){
  console.log('LoginCtrl')
})

当我尝试命中localhost:8000 / login时出现以下错误消息

Error code explanation: 404 = Nothing matches the given URI.

如何使用ngRoute和AngularFire设置简单路线?

2 个答案:

答案 0 :(得分:5)

使用默认路由器时,您需要在网址中使用哈希值。

localhost:8000/#/login

如果你想删除哈希,那就是另一个故事。

您需要使用$locationProvider并将html5Mode()设置为true。从那里开始,您必须停止使用$window.location.href来更改路线并使用$location.path()

然后,您必须获得服务器或使用支持Firebase HostingURL rewrites服务。

答案 1 :(得分:0)

在这里播放$ location(参见“测试输出”部分,这有助于我了解$ route),希望这会有所帮助。

http://ngtutorial.com/learn/route.html#/_tblcontents_5