我有一个登录页面,一个主页和我实现它们的方式是每个都有自己的模块。登录页面有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。
答案 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();
});