Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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
Angularjs $state.go不重定向,但其加载内容时带有200 OK_Angularjs_Nested_Angular Ui Router - Fatal编程技术网

Angularjs $state.go不重定向,但其加载内容时带有200 OK

Angularjs $state.go不重定向,但其加载内容时带有200 OK,angularjs,nested,angular-ui-router,Angularjs,Nested,Angular Ui Router,这是代码的plunker链接 controller.js if(($scope.login==='Admin')&&($scope.password==='admin')) { $state.go('login.home'); } script.js var DailyUsageApp = angular.module('DailyUsageApp', ['ui.router']); DailyUsageApp.config(function($stateProvide

这是代码的plunker链接

controller.js

if(($scope.login==='Admin')&&($scope.password==='admin'))
{
    $state.go('login.home');
}
script.js

var DailyUsageApp = angular.module('DailyUsageApp', ['ui.router']);
DailyUsageApp.config(function($stateProvider, $locationProvider, $urlRouterProvider) {
  $urlRouterProvider.otherwise('/login');
  $stateProvider.state('login', {
      url: '/login',
      templateUrl: "login.html",
      controller: 'authController'
    })
    .state('login.home', {
      url: '/home',
      templateUrl: "home.html",
      controller: 'homeController'
    });
});

代码不起作用的原因是因为您正在创建分层状态,而不是分层状态。通过将您的州命名为
login.home
,您是在说
home
login
的孩子。这意味着,当您尝试和
go('login.home')
ui路由器试图将登录状态和主页状态呈现为子级。这意味着,要使当前布局正常工作,登录模板必须包含自己的
ui视图
标记。解决这一问题的最佳方法是简单地将您的状态重命名为just
home
,然后使用
$state.go('home')

您的代码无法工作的原因是您正在创建分层状态,而这并不意味着分层状态。通过将您的州命名为
login.home
,您是在说
home
login
的孩子。这意味着,当您尝试和
go('login.home')
ui路由器试图将登录状态和主页状态呈现为子级。这意味着,要使当前布局正常工作,登录模板必须包含自己的
ui视图
标记。解决这一问题的最佳方法是简单地将您的状态重命名为just
home
,然后使用
$state.go('home')

最简单的解决方案是使state
login.home
嵌套在
login

//.state('login.home', {
.state('home', {
  url: '/home',
  templateUrl: "home.html",
  controller: 'homeController'
});
还有其他解决方案,如在
login
内部为
login.home
创建目标,如下所示:

<div ui-view=""></div

最简单的解决方案是使state
login.home
嵌套在
login

//.state('login.home', {
.state('home', {
  url: '/home',
  templateUrl: "home.html",
  controller: 'homeController'
});
还有其他解决方案,如在
login
内部为
login.home
创建目标,如下所示:

<div ui-view=""></div