Ionic $ state.go不在设备上工作

时间:2015-05-29 12:56:43

标签: angularjs ionic nested-views

我目前正在开发一款应用,使用Ionic进行构建。我的问题是$ state.go只能在浏览器中工作,但不能在手机上工作。这似乎是一个常见的问题,但在阅读了相同问题的大量答案之后,我仍然无法弄清楚如何修复它。

常规修复似乎是为了确保您使用相对网址,如此处所述:Using Angular UI-Router with Phonegap但我仍然无法使其发挥作用。我错过了什么?

链接到plunker:http://plnkr.co/edit/qFJ1Ld6bhKvKMkSmYQC8?p=preview

App.js结构:

    ....
    $stateProvider
      .state('parent', {
      url: "/",
      templateUrl: "parent.html"
    })
    .state('parent.child', {
      url: "child",
      templateUrl: "child.html"
    })
    $urlRouterProvider.otherwise("/")
    })
    ....

2 个答案:

答案 0 :(得分:0)

要使state.go工作,你必须向控制器注入$ state依赖

app.controller('ParentCtrl', ['$scope', '$state', function($scope, $state) {
  $scope.$state = $state
}]);

app.controller('MenuCtrl', ['$scope', '$state', function($scope, $state){

    $scope.goTo = function(){
        $state.go('menu.kategorier');
    }

}]);

并且您必须在$ stateProvider

中注册要转到的状态
$stateProvider
.state('menu.kategorier', {...})

要达到那个状态,你必须从父状态转到菜单'在这种情况下。你不能改变父母的状态'到' menu.kategorier'但你可以转到'parent.child'来自' parent'

答案 1 :(得分:0)

我根据以下示例更改了嵌套视图的设置解决了这个问题:http://codepen.io/mhartington/pen/Bicmo

对于那些感兴趣的人来说,这是我的傻瓜:

Plunker:http://plnkr.co/edit/2m5bljMntpq4P2ccLrPD?p=preview

app.js结构:

    $stateProvider
      .state('eventmenu', {
      url: "/event",
      abstract: true,
      template: "<ion-nav-view name='menuContent'></ion-nav-view>"
      })

      .state('eventmenu.home', {
      url: "/home",
      views: {
        'menuContent' :{
          templateUrl: "home.html"
        }
      }
     })

     .state('eventmenu.home.home1', {
     url: "/home1",
     views: {
       'inception' :{
         templateUrl: "home1.html"
       }
     }
    })