Javascript angular$stateProvider未按预期路由

Javascript angular$stateProvider未按预期路由,javascript,angularjs,ionic-framework,Javascript,Angularjs,Ionic Framework,在我的主index.html文件中,我有以下简单的标记 <body ng-app="starter" ng-controller="AppCtrl"> <div ui-view></div> </body> 当页面加载时,第一个状态被加载,这意味着我可以在我的mainindex.html中看到menu.html的内容,并且控制器AppCtrl被传递到此状态 MyAppCtrl从菜单中单击一个按钮即可加载我正在使用的API。html,该AP

在我的主
index.html
文件中,我有以下简单的标记

<body ng-app="starter" ng-controller="AppCtrl">
    <div ui-view></div>
</body>
当页面加载时,第一个状态被加载,这意味着我可以在我的main
index.html
中看到
menu.html
的内容,并且控制器
AppCtrl
被传递到此状态

My
AppCtrl
菜单中单击一个按钮即可加载我正在使用的API。html
,该API为用户提供了一个登录的UI,一旦凭据良好,则调用
成功

app.controller('AppCtrl', function($scope, $ionicModal, $timeout, $state) {

  $scope.create = function() {
      var linkHandler = Plaid.create({
        env: 'tartan',
        clientName: 'Example Project',
        key: 'test_key',
        product: 'connect',
        onSuccess: function(token) {
            $state.go('app.accounts');
        },
    });

    linkHandler.open();
  }   
});
API的功能与此无关,但正如您所见,我正在传递
$state.go('app.accounts')关于成功。但是,我没有将状态更改为
app.accounts
,而是认为调用了
否则
语句,因为我看到的只是
app
状态的内容


为什么会这样?我已经在这个问题上纠缠了一段时间。

app.accounts
app
的子状态。这意味着在
menu.html
中必须有
才能显示
accounts.html

如果您不想在
菜单.html
中显示
accounts.html
,则不应将
accounts
设置为
app
的子状态:

<body ng-app="starter">
    <div ui-view></div>
</body>

app.accounts
app
的子状态。这意味着在
menu.html
中必须有
才能显示
accounts.html

如果您不想在
菜单.html
中显示
accounts.html
,则不应将
accounts
设置为
app
的子状态:

<body ng-app="starter">
    <div ui-view></div>
</body>

能否确保“onSuccess”回调可以访问$state。您可以使用console.log($state);在onSuccess函数中。@RaviTeja似乎确实有访问权限。当我
console.log
时,我得到类似
Object{params:Object,current:Object,$current:extend,transition:null}
你有与
app.accounts
状态相关联的控制器吗?@RaviTeja不,我不应该吗?@RaviTeja真的坚持住,也许我会。我将
ng controller
放在我的
body
标记中…这可能是原因吗?您能否确保“onSuccess”回调可以访问$state。您可以使用console.log($state);在onSuccess函数中。@RaviTeja似乎确实有访问权限。当我
console.log
时,我得到类似
Object{params:Object,current:Object,$current:extend,transition:null}
你有与
app.accounts
状态相关联的控制器吗?@RaviTeja不,我不应该吗?@RaviTeja真的坚持住,也许我会。我把
ng控制器
放在我的
身体
标签上……这可能是原因吗?
app.config(function($stateProvider, $urlRouterProvider) {
  $urlRouterProvider.otherwise('/app');
  $stateProvider

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