Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ionic(AngularJS)中ui路由器的路由问题_Javascript_Angularjs_Angular Ui Router_Ionic Framework - Fatal编程技术网

Javascript ionic(AngularJS)中ui路由器的路由问题

Javascript ionic(AngularJS)中ui路由器的路由问题,javascript,angularjs,angular-ui-router,ionic-framework,Javascript,Angularjs,Angular Ui Router,Ionic Framework,我在ionic中定义了UI路由,并在控制器中创建了一个console.log,但我的问题是,当我使用ng href=//LINK在URL之间切换时,控制台中没有显示数据,但当我刷新同一页面时,我能够在控制台中看到数据。。。。让我知道我做错了什么 路线- .state('app.roomone', { url: "/roomone/:id", views: { 'menuContent': { templateUrl: "templates/room

我在ionic中定义了UI路由,并在控制器中创建了一个console.log,但我的问题是,当我使用ng href=//LINK在URL之间切换时,控制台中没有显示数据,但当我刷新同一页面时,我能够在控制台中看到数据。。。。让我知道我做错了什么

路线-

  .state('app.roomone', {
    url: "/roomone/:id",
    views: {
      'menuContent': {
        templateUrl: "templates/roomone.html",
        controller: 'RoomoneCtrl'
      }
    }
  })

  .state('app.roomtwo', {
    url: "/selecroom/:roomname/:roomindex",
    views: {
      'menuContent': {
        templateUrl: "templates/roomtwo.html",
        controller: 'RoomtwoCtrl'
      }
    }
  })
下面是我的控制器-

.controller('RoomoneCtrl', function($scope, $rootScope) {
  console.log("I am in room one");
});

.controller('RoomtwoCtrl', function($scope, $rootScope) {
  console.log("I am in room two");
});
在我的模板中-我有简单的-


问题-只有在refreshF5上,我才能像在一号房间一样获得控制台值,而不是链接的简单导航。让我知道我做错了什么。

正如评论中指出的那样:视图已兑现,因此在您第二次访问页面时控制器未初始化

有一种解决办法在报告中没有提到。在视图或路由器中将cashing更改为false,我在这里添加一个额外的答案更好的方法是将其添加到注释中,但对于代码示例,这将变得不清楚

在控制器或指令中侦听$ionicView.beforeEnter事件,以了解视图何时处于活动状态

.controller('RoomoneCtrl', function($scope, $rootScope) {
    $scope.$on('$ionicView.beforeEnter', function () {
        // (on first time added to DOM and after the view becomes active after cached
        // change some value on your scope
        $scope.date = new Date();
        console.log("I am in room one");
    });
});

有关ionic view事件,请参见:

我也面临同样的问题。这是一个缓存问题。我已使用cache:false修复了此问题。您已将其添加到路由中,如下所示

.state('app.roomone', {
    url: "/roomone/:id",
    cache : false,
    views: {
      'menuContent': {
        templateUrl: "templates/roomone.html",
        controller: 'RoomoneCtrl'
      }
    }
  })

  .state('app.roomtwo', {
    url: "/selecroom/:roomname/:roomindex",
    cache : false,
    views: {
      'menuContent': {
        templateUrl: "templates/roomtwo.html",
        controller: 'RoomtwoCtrl'
      }
    }
  })

那是因为缓存问题,,您需要在使用cache:false时查看@pankajparkar,它正在抛出错误-错误:ctrlB是nullleave@http://localhost:8100/lib/ionic/js/ionic.bundle.js:43279:23尝试在其中执行1和2选项answer@pankajparkar控制台中出现同样的错误..虽然功能正常..我使用的是版本-v1.0.0-beta.14…我该怎么做根据你的帖子降级到13级?从这里获取javascript