如何使用$ stateParams离子

时间:2016-10-12 15:23:07

标签: angularjs ionic-framework

我正在开发一个应用程序,它使用第一页的信息,以便该信息用作第二页的输入。要传递我正在使用$stateParams的信息,但仍然是第二页没有显示输出。

html第1页:

<ion-list>
  <ion-item ng-model="carBrand" ng-repeat="name in carSelect"  ng-click="selectItem(carBrand)">
      {{name.name}}
  </ion-item>
 </ion-list>

html第2页:

<ion-checkbox ng-model="cartype" ng-repeat="brandType in carBrand.types">
   <div align="center"><span>{{brandType}}</span></div>
</ion-checkbox><br><br>

控制器:

carService.controller('carBrand',['$scope','carRepository','$rootScope','$state','$stateParams',function($scope,carRepository,$rootScope,$state,$stateParams){

 $scope.newCarList=[];
 $rootScope.carSelect=carRepository.data;
 $scope.selectItem=$stateParams.name;
 $scope.selectItem=function(key){

 $scope.newCarList.push(key);
 $state.go('app.CarDetails',{value:$scope.name});
}

app.js

var carService = angular.module('CarWash',['ionic']).config(function($stateProvider, $urlRouterProvider) {
  $stateProvider
    .state('app.Cartype',{
        url:'/Cartype',
        views:{
          'menuContent':{
            templateUrl:'templates/Cartype.html',
            controller:'carBrand'
          }
        }
      })
      //carEdit.html

    .state('app.carEdit',{
        url:'/carEdit',
        views:{
          'menuContent':{
            templateUrl:'templates/carEdit.html'
          }
        }
      })

1 个答案:

答案 0 :(得分:1)

看起来您也在使用UIRouter?

我马上就看到了两个明显的问题。

  • 你告诉UIRouter去一个州的app.CarDetails&#39;我在$ state config
  • 中看不到
  • 你还没有宣布在你的州使用任何参数。

如果要使用参数驱动UI状态,则需要在URL中定义params或在状态上定义params对象。我们假设你想去app.CarEdit&#39;当您单击该项目时。你的州看起来像这样:

网址驱动的参数:

.state('app.CarEdit', {
    url: '/edit/{type}',
    ....
})

哈希驱动的参数:

 .state('app.CarEdit', {
     url: 'carEdit',
     params: { type: undefined }
 })

在任何一种情况下,当您致电$state.go时,您需要通过定义type来传递参数:

$state.go('app.CarEdit', { type: $scope.selectedType })

类似的东西。