网址已更改,但AngularJS中没有显示任何内容

时间:2015-02-11 11:44:04

标签: javascript angularjs ngroute

我有一个登录页面,一个主页和我实现它们的方式是每个都有自己的模块。登录页面有loginApp,主页有myApp。当我点击提交时,我想导航到home.html。

在我的index.html(登录页面)中,我有这个:

   <script>
     angular.module("whole", ["loginApp", "myApp"]);
   </script>

最后我宣布了这一点:

<html ng-app="whole" class="ng-scope">

现在我被困在这个ngRoute。我有这个:

"use strict";
var lapp = angular.module("loginApp", ["ngRoute", "ngCookies"]);

lapp.config(["$routeProvider", function ($routeProvider) {
    $routeProvider
            .when("/", {
                templateUrl: "index.html"
            })
            .when("/home", {
                templateUrl: "home.html"
            })
            .otherwise({redirectTo: '/'});
}]);

这是我的loginCtrl:

$scope.login = function () {
        var credentials = {
            username: $scope.username,
            password: $scope.password
        };
        Auth.login(credentials, function (res) {
            init();
            $location.path("views/home.html");
        }, function (err) {
            init();
        });

这是我的html:

<div ng-controller="loginCtrl" class="login">
  <form ng-submit="login()" method="post" name="form" novalidate>  
   <!--two inputs and stuff-->
   <input type="submit" value="Login">
 <!--Then some closing tags, whatever-->

我的初始网址是:

http://localhost:8000/public_html/

点击提交(登录)后,它变为

http://localhost:8000/public_html/views/home.html#/basic

但是除非我刷新页面,否则视图不会改变。 还有另外一篇关于此的帖子,但是他做了一个错字,我确信我输入了&#34; templateUrl&#34;正确。我甚至不知道可能导致这个bug的原因。我只是假设ngRoute。

1 个答案:

答案 0 :(得分:2)

您错过了使用&#39;。其他&#39;

您需要将templateUrl与path之间的理解分开。

  

模板网址是html文件上的网址,会被注入ng-view指令

     

路径是你的网址,告诉你的路由器应该使用哪个templateUrl(和其他配置)

例如:

App config block:

$routeProvider
   .when("/login", {
         templateUrl: "login.html"
     })
   .when("/home", {
         templateUrl: "home.html"
     })
     .otherwise({redirectTo: '/home'}); <-- if no path is matched, use this path 

控制器:

  $scope.login = function () {
    var credentials = {
        username: $scope.username,
        password: $scope.password
    };

    Auth.login(credentials, function (res) {
        init();
        $location.path("/home");
    }, function (err) {
        init();
    });