2016-10-12 8 views
1

アイテムのリストが表示されている場所にアプリケーションを作成しています。アイテムが選択されると、別のセットのアイテムがチェックボックスでリストされている別のページにリダイレクトされ、アイテムをチェックボックスでチェックして後で処理することができます。私は最初のページのリストから項目を選択することができますが、問題は次のページにあります。選択された項目に関連する項目は表示されず、空白のままです。解決に手伝ってください。イオンリストを使用して選択したアイテムのサブアイテムを表示する

のhtmlページ1:

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

のhtmlページ2:

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

コントローラ:

carService.factory('carRepository',function(){ 
    var brandList={}; 
    brandList.data= [ 
     {'name':'Benz', 'types':['Truck', 'Regular']}, 
     {'name':'BMW', 'types':['Oversize', 'Motorcycle']}, 
     {'name':'Bently','types':['Regular']}, 
     {'name':'Honda','types':['SUV','Truck']}, 
     {'name':'Lexus','types':['Oversize','Motorcycle','Truck']}, 
     {'name':'Toyota','types':['SUV']} 
    ]; 

    { 
    return brandList; 
    } 
}); 

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

    $rootScope.carSelect= carRepository.data; 
    $scope.newCarList=[]; 
    $scope.selectedItem = 'select'; 
    $scope.selectItem = function (key) { 
     $scope.newCarList.push(key); 
     $state.go('app.CarDetails'); 
    } 
    $scope.addEntry = function() { 
     $state.go('app.carEdit'); 
    }; 
}]) 

答えて

0

あなたは、そのページが以前に選択されたかを知る必要があり、次のページに移動した場合ページ。 $state.goを使用しているため、次のページに渡す$stateparamsを試してみてください。ような何か:

現在のページ

$state.go('app.CarDetails',{value: value}) 

次のページ - 次のページ> app.CarDetails

$scope.selected = $stateparams.value; 

あなたが情報を検索し、事前に移入した値を使用することができます前のページのクリックから必要です。

コントローラーの定義に$stateparamsを注入/追加することを忘れないでください。

+0

を取得するためのパラメータとして、それが機能していません。それを解決する別の方法がありますか? – sree

1

これは正しくなります:アプリケーションのコンフィグ以内

、私は次のようにパラメータを受け取るために、V状態を設定する必要があります。

ここ
carService.config(function($stateProvider, $urlRouterProvider) { 
    .state('html2', { 
     templateUrl: 'overview', 
     params:  ['value'], 
     controller: 'HtmlCtrl2' 
    }) 
    ...... 
}) 

あなたが呼ばれるパラメータを受け取ることを言います値。最初のコントローラでHtml1Ctrl から

は、つまり、HTMLの1にあなたの例によると、あなたはこの定義:ここで

.controller('HomeCtrl1', function($state){ 
    $scope.redirect = function(){ 
     params = { 'value': 1 }; 
     $state.go('view', params); 
    } 
}) 

をあなたは、その関数が呼び出されたときアルメ値を「リダイレクト」と送っていることを言いますHtmlCtrl2で

を再ルーティングし、コントローラ2にあなたが...

.controller('HtmlCtrl2', function($scope, $stateParams) { 
    var value= $stateParams[0]; 
}); 
+0

あなたは私のような初めてのユーザーのために働くplnkrを添付することができます。 – sree

+0

現時点では私はそれを理解できませんが、私の答えをよりよく理解するためには、 – sioesi

関連する問題