我是AngularJS的新手,我对如何在以下场景中使用angularjs ui-router
感到有些困惑:
它由两部分组成 . 第一部分是主页,其中包含登录和注册视图,第二部分是仪表板(成功登录后) .
-
当我登录成功时需要从登录表单导航到"Home page" .
-
当我点击注册按钮时,我需要从登录页面导航到"Registration page"
-
同样我也需要一个"forgot password"画面
我目前的路由器在下面 . 我该怎么做这个功能? (请帮助一些HTML代码和相关的控制器)
app.js:
'use strict';
//Define Routing for app
angular.module('myApp', []).config(['$routeProvider', '$locationProvider',
function($routeProvider,$locationProvider) {
$routeProvider
.when('/login', {
templateUrl: 'login.html',
controller: 'LoginController'
})
.when('/register', {
templateUrl: 'register.html',
controller: 'RegisterController'
})
.when('/forgotPassword', {
templateUrl: 'forgotpassword.html',
controller: 'forgotController'
})
.when('/home', {
templateUrl: 'views/dashBoard.html',
controller: 'dashBordController'
})
.otherwise({
redirectTo: '/login'
});
}]);
});
1 回答
首先,没有人会为您设计一个符合您要求/功能的网站 .
stackoverflow
是针对具体问题的,您的问题太广泛了,更多关于它的问题 - How to Ask . 但是为了帮助您从ngRoute
转换到ui.router
,我可以描述语法应该是什么样的,这样您就可以将它用于您的网站 .转换为ui.router
你的配置不会改变那么多 . 您需要将
.when
替换为.state
,使用正确的提供程序,并使用正确的语法 . 这是一个只有几个州的例子:导航
您应该始终使用状态进行导航 . 所以用
ui-sref="state"
替换href="url"
. 以下是锚链接的一些示例:不要忘记用
ui-view
替换ng-view
. (对于较旧的浏览器支持,最好使用<div ui-view></div>
而不是<ui-view></ui-view>
)重定向
填写登录表单后,用户将按下以下内容:
这将调用一个函数
login()
,它将验证/验证用户是否可以登录 . (你也可以<form ng-submit="login()">
与<button type="submit">...
)然后,如果一切正常并且用户获得了他的会话/ cookie,你可以重定向到另一个页面:(别忘了将
$state
注入控制器)高级导航
将来,如果您有按索引列出的用户配置文件 . 您的路由可以使用
$stateParams
进行改进 . 他们的工作是检查URL中的任何其他参数 . 例如:URL:/profile/721
可以具有url:"/profile/:id"
的状态 . 然后,您可以使用$stateParams.id
提取该ID并在控制器中使用它 . 你的重定向看起来像: