我正在使用角度$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)
我不知道为什么我会收到此错误,因为第一条路线工作正常。知道如何解决这个问题吗?
答案 0 :(得分:1)
你的道路是错的。这就是错误所说的。它无法找到该路线。
尝试$window.location.href = "/#/app/accounts";
请记住在控制器中注入$window
。
然而,更好的方法是注入$state
服务并使用它来导航:
$state.go('app.accounts')