2016-10-12 7 views
0

私は最初のページの情報を使用するアプリケーションを開発しており、その情報は2ページ目の入力として使用されています。 $stateParamsを使用している情報を渡すために、2番目のページには出力が表示されませんでした。

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' 
      } 
     } 
     }) 
+0

あなたのルートはどのように見えますか? – Makoto

+0

@Makoto投稿を編集しました。これが役に立ったら – Rudhra

+0

'$ scope.selectItem = $ stateParams.name'を設定し、次の行を関数として定義するのはなぜですか? – jusopi

答えて

1

あなたはUIRouterも使っているようですね?

すぐにわかる2つの目立つ問題があります。

  • あなたは私はあなたがあなたの状態で使用するために、任意のparamsを宣言していない
  • あなたの$状態の設定で定義されて表示されていない状態「app.CarDetails」に行くためにUIRouterを言っています。

パラメータを使用してUI状態を駆動する場合は、URLにパラメータを定義するか、その状態でparamsオブジェクトを定義する必要があります。アイテムをクリックすると、 'app.CarEdit'に行きたいとします。あなたの状態は次のようになります。あなたのいずれかの場合には

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

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

OR

ハッシュ駆動型のパラメータ:パラメータを駆動

URLを$state.goに電話する必要がありますtypeを指定してパラメーターを返信します。

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

このようなものです。

関連する問題