如何使用stateProvider进入状态?

时间:2015-05-26 22:05:57

标签: angularjs angular-ui-router

使用角度stateProvider,这是我的路线:

app.config(['$stateProvider', function ($stateProvider) {
  $stateProvider
    .state("start", {
      url: "/",
      templateUrl: 'start.html',
      controller: 'StartCtrl'
    })
    .state("test", {
      url: "/",
      templateUrl: 'test.html',
      controller: 'TestCtrl'
    });
}]);

在自举时,我想进入'测试'状态:

app.run(['$rootScope', '$state', '$stateParams', function ($rootScope,   $state, $stateParams) {
  $state.go('test');
  console.log('app.run');
}]);

这些是控制器:

app.controller('StartCtrl', function($scope) {
  console.log('start');
});

app.controller('TestCtrl', function($scope) {
  console.log('test');
});

为什么应用程序路由到'start'状态?我想进入'测试'状态?

代码参考:http://plnkr.co/edit/FCcL4M?p=preview

2 个答案:

答案 0 :(得分:1)

您需要更改测试或开始“状态”的网址,现在它们都是相同的。我将测试状态url更改为“/ test”并正确加载。

http://plnkr.co/edit/2esV4dbd4ptNSEmwD3g4?p=preview

app.config(['$stateProvider',
  function($stateProvider) {
    $stateProvider
      .state("start", {
        url: "/",
        templateUrl: 'start.html',
        controller: 'StartCtrl'
      })
      .state("test", {
        url: "/test",
        templateUrl: 'test.html',
        controller: 'TestCtrl'
      });
  }
]);

答案 1 :(得分:0)

只需要添加到上一个答案:开始和测试都需要纠正 遵循标准。

http://plnkr.co/edit/TjDzyL?p=preview

pp.config(['$stateProvider', function ($stateProvider) {
  $stateProvider
    .state("start", {
      url: "/start",
      templateUrl: 'start.html',
      controller: 'StartCtrl'
    })
    .state("test", {
      url: "/test",
      templateUrl: 'test.html',
      controller: 'TestCtrl'
    });
}]);