Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 多点角度JS ng应用程序_Javascript_Html_Angularjs - Fatal编程技术网

Javascript 多点角度JS ng应用程序

Javascript 多点角度JS ng应用程序,javascript,html,angularjs,Javascript,Html,Angularjs,我有一个angular应用程序,有一个登录页面、一个注册页面和一个仪表板,用户登录后可以访问。目前,用户可以直接访问登录页面或注册页面,因此我在这两个页面的顶部都有一个ng应用程序。但这似乎不是正确的方法,而且多次初始化我的应用程序也没有意义。但是,如果我在登录页面上只有ng应用程序,并且用户直接进入注册页面,那么该应用程序将不会初始化,并且我将无法访问注册页面的控制器。我怎样才能避开这件事 我想只是初始化我的应用程序一次,因为从我所读到的这是它应该如何做 谢谢将ng应用程序放在index.ht

我有一个angular应用程序,有一个登录页面、一个注册页面和一个仪表板,用户登录后可以访问。目前,用户可以直接访问登录页面或注册页面,因此我在这两个页面的顶部都有一个
ng应用程序
。但这似乎不是正确的方法,而且多次初始化我的应用程序也没有意义。但是,如果我在登录页面上只有
ng应用程序
,并且用户直接进入注册页面,那么该应用程序将不会初始化,并且我将无法访问注册页面的控制器。我怎样才能避开这件事

我想只是初始化我的应用程序一次,因为从我所读到的这是它应该如何做


谢谢

将ng应用程序放在index.html文件中,然后在正文中添加类似的内容:

<body>
  <div data-ui-view></div>
</body>


然后,您可以使用ui路由器或ng路由切换“状态”(即登录、注册等),并且“视图”将填充到数据ui视图中。就个人而言,我觉得ui路由器更好,但两者都可以做到。

大多数时候,每个应用程序都必须使用一次ng应用程序。您可以使用ngRoute模块或ui路由器管理视图,并可以在其上找到更多选项

看下面的例子,有一些额外的东西你可以从中学到

angular.module('demoApp',['ui.router']))
.run(函数($rootScope,$state){
$rootScope.$on(“$stateChangeError”,函数(evt、to、toParams、from、fromParams、error){
如果(错误。重定向到){
$state.go(错误。重定向到);
}否则{
$state.go('error',{status:error.status})
}
})
})
.factory('userService',userService)
.config(路线);
函数userService(){
var usersMock={
“testUser”:{
用户名:“testUser”,
密码:“1234”
},
“testUser2”:{
用户名:“testUser2”,
密码:“1234”
}
};
var userService={
用户:未定义,
登录:函数(用户凭据){
//稍后-->$http.post('auth',userCredentials)。然后(…)
//对于演示,请使用本地数据
var user=usersMock[userCredentials.username]
userService.user=(user&&(user.password==userCredentials.password))?
用户:未定义;
返回用户;
},
注销:函数(){
userService.user=未定义;
}
}
返回用户服务;
}
函数路由($urlRouterProvider,$stateProvider){
$urlRouterProvider。否则('/');
$stateProvider
.state('根'{
url:“”,
摘要:没错,
决心:{
“用户”:函数(用户服务){
return userService.user;//在实际应用中是异步的
}
},
观点:{
'': {
templateUrl:'layout.html',
},
'header@root': {
模板:“标题Viewlogoutlogin”,
控制器:函数($scope、$state、user、userService){
$scope.user=用户;
$scope.login=函数(){
$state.go('login');
};
$scope.logout=函数(){
userService.logout();
$state.go('root.home',{},{reload:true});
};
}
},
'footer@root': {
模板:“页脚视图”
}
}
})
.state('root.home'{
url:“/”,
观点:{
“内容”:{
模板:“你好,在家”
}
}
})
.state('root.about'{
url:“/关于”,
观点:{
“内容”:{
模板:“关于视图”
}
}
})
.state('root.restricted'{
url:“/restricted”,
决心:{
auth:function(userService,$q,$timeout){
var deferred=$q.deferred();
/*//使用异步
返回UserService.load().then(函数(用户){
if(permissionService.can(用户,{goTo:state})){
返回延迟。解析({});
}否则{
return deferred.reject({redirectTo:'some_other_state'});
}
}*/
$timeout(函数(){
if(angular.isUndefined(userService.user)){
返回延迟。拒绝({redirectTo:'login'});
}
否则{
返回deferred.resolve(userService.user);
}
});
回报。承诺;
}
},
观点:{
“内容”:{
模板:“这仅在登录后可见。您好{{{user}!”,
控制器:函数($scope,auth){
$scope.user=auth.username;
}
}
}
})
.state('登录'{
url:“/login”,
templateUrl:'views/login.html',
控制器:函数($scope、$state、userService){
$scope.login=函数(cred){
var user=userService.login(cred);
如果(角度未定义(用户)){
警报('用户名或密码不正确')
}
否则{
$state.go('root.restricted');
}
};
}
});
}