0
在我的主要index.html
文件我有以下簡單的標記......
<body ng-app="starter" ng-controller="AppCtrl">
<div ui-view></div>
</body>
在我app.js
我使用$stateProvider
創建路由,以便我能顯示某些頁面...
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'
})
});
頁面加載時,第一狀態被加載,這意味着我可以看到在我的主index.html
和控制器AppCtrl
的menu.html
內容傳遞到這個狀態。
我AppCtrl
負載,我使用一個按鈕的點擊來自menu.html
的API,該API提供了一個用戶登錄的UI,而一旦憑證都不錯,success
叫...
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
,我相信otherwise
語句調用,因爲我看到的是app
狀態的內容。
這是爲什麼?我一直在這個問題上停留了一段時間。
你能確保 「的onSuccess」回調可以訪問$ state。你可以console.log($ state);裏面有onSuccess功能。 –
@RaviTeja它似乎確實有訪問權限。當我'console.log'我得到像'Object {params:Object,current:Object,$ current:extend,transition:null}' – Bolboa
你有一個與'app.accounts'狀態相關的控制器嗎? –