angular $ stateprovider无法按预期工作

时间:2016-10-01 01:44:36

标签: angularjs ionic-framework

我正在使用角度$stateProvider来允许整个应用中的路线。我有一个index.html,我正在使用以下内容更改内部的html内容...

app.config(function($stateProvider, $urlRouterProvider) {
  $urlRouterProvider.otherwise('/app');
  $stateProvider

    .state('app', {
      url: '/app',
      templateUrl: 'templates/menu.html',
      controller: 'AppCtrl'
    })
    .state('app.accounts', {
      url: '/accounts',
      templateUrl: 'templates/accounts.html'
    })  
});

第一条路线有效,当您打开应用时template/menu.html放在index.html内。当我尝试更改状态时会出现问题。

目前,我正在我的应用中实施API,API的作用无关紧要,但成功后我希望API将状态更改为app.accounts,请参阅下文......

app.controller('AppCtrl', function($scope, $ionicModal, $timeout) {
  $scope.create = function() {
  var linkHandler = Plaid.create({ 
    env: 'tartan',
    clientName: 'Example Project',
    key: 'test_key',
    product: 'connect',
    //On success I want to change the state
    onSuccess: function(token) {
        window.location = '/app/accounts';

    }, 
  });
  linkHandler.open();
  }

});

上面,成功之后,我尝试更改状态,但是当调用window.location时,我收到错误...

net::ERR_FILE_NOT_FOUND (file:///app/accounts)

我不知道为什么我会收到此错误,因为第一条路线工作正常。知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

你的道路是错的。这就是错误所说的。它无法找到该路线。

尝试$window.location.href = "/#/app/accounts";

请记住在控制器中注入$window

然而,更好的方法是注入$state服务并使用它来导航:

$state.go('app.accounts')