AngularJS ng-click to go to another page (with Ionic framework)
Solution 1:
Based on comments, and due to the fact that @Thinkerer (the OP - original poster) created a plunker for this case, I decided to append another answer with more details.
- Here is a plunker created by @Thinkerer
- here is its updated and working version
The first and important change:
// instead of this
$urlRouterProvider.otherwise('/tab/post');
// we have to use this
$urlRouterProvider.otherwise('/tab/posts');
because the states definition is:
.state('tab', {
url: "/tab",
abstract: true,
templateUrl: 'tabs.html'
})
.state('tab.posts', {
url: '/posts',
views: {
'tab-posts': {
templateUrl: 'tab-posts.html',
controller: 'PostsCtrl'
}
}
})
and we need their concatenated url '/tab'
+ '/posts'
. That's the url we want to use as a otherwise
The rest of the application is really close to the result we need...
E.g. we stil have to place the content into same view targetgood, just these were changed:
.state('tab.newpost', {
url: '/newpost',
views: {
// 'tab-newpost': {
'tab-posts': {
templateUrl: 'tab-newpost.html',
controller: 'NavCtrl'
}
}
because .state('tab.newpost'
would be replacing the .state('tab.posts'
we have to place it into the same anchor:
<ion-nav-view name="tab-posts"></ion-nav-view>
Finally some adjustments in controllers:
$scope.create = function() {
$state.go('tab.newpost');
};
$scope.close = function() {
$state.go('tab.posts');
};
As I already said in my previous answer and comments ... the $state.go()
is the only right way how to use ionic
or ui-router
Check that all here
Final note - I made running just navigation between tab.posts
... tab.newpost
... the rest would be similar
Solution 2:
Use <a>
with href instead of a <button>
solves my problem.
<ion-nav-buttons side="secondary">
<a class="button icon-right ion-plus-round" href="#/app/gosomewhere"></a>
</ion-nav-buttons>