2016-08-24 16 views
0

このイオンアプリケーションでは、検索ページからデータを入力し、次のページに結果を表示します。しかし、私はそれを試してみると動作しません。そして、私はコンソールに検索結果を得ることができます。両方のページに同じコントローラを作成しても、データは次のページに渡されません。この問題を解決するために私を助けてください!ありがとう!!検索ページの検索結果を次のページに表示して表示するには

これは私のボタンのコードです( 'searchA' は入力されたデータを含むオブジェクトである)

<button type="button" class="button button-block button-positive" ng-click="search(searchA)" ui-sref="app.MainSearchResult">Search</button> 

これらは、(これは私の検索機能で自分の状態(app.jsファイル)

.state('app.MainSearch', { 
     cache:false, 
     url: '/MainSearch', 
     views: { 
     'menuContent': { 
      templateUrl: 'templates/MainSearch.html', 
      controller: 'MainSearchCtrl' 
     } 
     } 
    }) 

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

ですcontroller.js)

$scope.search = function(searchA){ 

    console.log('No : '+ searchA.emp_EPF); 
    console.log('Name : '+ searchA.emp_Name); 
    console.log('Company :'+ searchA.emp_Comp); 
    //console.log('qualification Type : ' + emp_qualiType); 
    console.log('-------------------'); 

    $http({ 
     method: 'GET', 
     url: 'http://localhost/mas/Search.php', 
     params: {employeeNo : searchA.emp_EPF, 
     employeeName : searchA.emp_Name, 
     employeeCompany : searchA.emp_Comp, 
     employeeBusinessUnit : searchA.emp_BU, 
     employeeTeamName : searchA.emp_Team, 
     employeeSecondaryCompany : searchA.emp_secondmant, 
     employeeRelatedEmployee : searchA.emp_relatedEmp, 
     employeeWorkLevel : searchA.emp_workl, 
     employeeDesignationName : searchA.emp_designation, 
     qualificationType : searchA.emp_qualiType, 
     qualificationField : searchA.emp_qualiField, 
     programName : searchA.emp_progName, 
     serviceProvider : searchA.emp_svcProvider 
     } 
    }).then(function successCallback(response) { 
     $scope.searchResults = response.data['records']; 
     console.log('success :'+ JSON.stringify($scope.searchResults));  

    }, function errorCallback(response) { 
     console.log('error',response); 
     // called asynchronously if an error occurs 
     // or server returns response with an error status. 
    }); 

    angular.copy($scope.resetData,searchA); 

    } 

これは次のページの結果セットビューです。

<ion-list ng-repeat="x in searchResults"> 
    <ion-item class="item item-text-wrap" > 
     <div > 
     <h2>{{x.employeeNo}}</h2> 
     <p>{{x.employeeName}}</p> 
      <div> 
      <a class="button button-outline button-medium button-positive" >Edit</a> 
      </div> 
     </div> 
    </ion-item> 
    </ion-list> 

これを完了するために私を助けてください! ありがとうございます!

+0

あなたはどのような問題を解決できなかったのですか?コンソール出力は何ですか? – boroboris

+0

私は結果をJSONオブジェクトとして表示するのと同じページ(検索ページ)のコンソールに表示します。 検索クエリの結果セットを次のページ(検索結果ページ)に表示できません! 次のページ(検索結果ページ)にこれらの結果を表示する方法を知っておく必要があります –

答えて

1

簡単な解決策は、工場出荷時には、オブジェクトを返し、両方のページで、あなたのコントローラが同じオブジェクト

var myApp = angular.module('myApp', []); 
myApp.factory('Data', function(){ 
    //Make your search request here. 
    return Data; 
}); 
myApp.controller('MainSearchCtrl', function($scope, Data){ 
    $scope.searchResults = Data; 
}); 
myApp.controller('MainSearchResultCtrl', function($scope, Data){ 
    $scope.searchResults = Data; 
}); 

を参照してビュー/スコープ/コントローラ間でデータを共有する最も簡単な方法を操作でき持つことです、最も簡単な方法は$rootScopeに保存することです。あなたは、同様にsearchResultsページに同じ変数を使用することができますMainSearchCtrlで

$scope.searchResults = response.data['records']; 
$rootscope.searchResults = $scope.searchResults; 

+0

ありがとうございました! rootScopeのことがうまくいった! :) –

関連する問題