无法在控制器中获取$ routeParams的值(AngularJs)

时间:2016-06-16 12:30:05

标签: angularjs ionic-framework routeparams

我的配置:

  .config(function($stateProvider, $urlRouterProvider) {


  $stateProvider


 .state('tab.chats', {
      url: '/chats/:id',
      views: {
        'tab-chats': {
          templateUrl: 'templates/tab-chats.html',
          controller: 'detail'
        }
      }
    })


$urlRouterProvider.otherwise('/tab/dash');

})

我的控制员:

.controller("detail", ["$scope", "$http", function($scope, $http, $routeParams){

   $scope.data = $routeParams.id;

我的HTML:

<ion-view>
  <ion-content class="ata1">
    <a href="#/tab/dash" rel="nofollow"><img id="logo" src="img/falimda.png" alt="" /></a>

    <div class="clear"></div>


    <div ng-controller="detail">
      {{data}}
    </div>


    <div class="clear"></div>

    <a href="#/tab/dash" class="button button-outline button-light">Back</a>

  </ion-content>
</ion-view>

所以我在这里通过Ionic Framework编写移动应用程序,我无法解决问题。

我正在尝试使用id在我的控制器中使用此routeParams,以便我可以使用id从网络中提取一些数据,但遗憾的是我无法访问它在我的控制器里面。我试图在ng-controller内测试并打印出我的数据,但这不起作用。你能救我吗?

2 个答案:

答案 0 :(得分:2)

您正在使用ui-router进行路由,但希望在ngRoute的routeParams服务中找到ui-router状态参数。不会发生。

使用$stateParams,并从您的应用程序中删除ngRoute依赖项,因为您使用的是ui-router。

要修复另一个注释问题,另一个答案解释,并避免以后再重复,我建议您坚持使用简单的声明或参数(不使用强制您复制所有服务名称的数组语法),以及使用ng-annotate使其可自动缩小。

答案 1 :(得分:0)

更改您的控制器代码,如下所示

.controller("detail", ["$scope", "$http", "$routeParams", function($scope, $http, $routeParams){

   $scope.data = $routeParams.id;