2015-05-05 55 views
2

我使用UI-Router。我有一個第一控制器UI路由器不使用參數路由

vehicuels.controller.js:

'use strict'; 

angular.module('autoPrivilegeApp') 
    .controller('VehiculesCtrl', function ($scope,$http, $state) { 
    $scope.awesomeThings = []; 

    $http.get('/api/cars').success(function (awesomeThings) { 
     $scope.message = awesomeThings; 
    }); 

    // Show Car detail 
    $scope.showCarDetail = function (_id) { 
     $state.go('vehiculeDetail', {id: _id}); 
    }; 
    }); 

vehicules.js:

'use strict'; 

angular.module('autoPrivilegeApp') 
    .config(function ($stateProvider) { 
    $stateProvider 
     .state('vehicules', { 
     url: '/vehicules', 
     templateUrl: 'app/vehicules/vehicules.html', 
     controller: 'VehiculesCtrl' 
     }); 
    }); 

vehicules.html:

<div class="col-md-12"> 
<div ng-repeat="car in message"> 
    <button class="medium bouton bleu" ng-click="showCarDetail(car._id);"> 
    {{ car._id }} 
</button> 
    <br/><br/><br/><br/> 
</div> 
</div> 

我想ID傳遞給我的第二個控制器

vehiculeDetail.controller.js:

'use strict'; 

angular.module('autoPrivilegeApp') 
    .controller('VehiculeDetailCtrl', function ($scope,$stateParams) { 
    $scope.message = $stateParams.instanceID; 
    }); 

vehiculeDetails.js:

'use strict'; 

angular.module('autoPrivilegeApp') 
    .config(function ($stateProvider) { 
    $stateProvider 
     .state('vehiculeDetail', { 
     url: '/vehiculeDetail/{id}', 
     templateUrl: 'app/vehiculeDetail/vehiculeDetail.html', 
     controller: 'VehiculeDetailCtrl' 
     }); 
    }); 

vehiculeDetail.html:

<div class="col-md-12"> 
This is the vehiculeDetail id {{message}}. 
</div> 

我使用自耕農發電機 - >generator-angular-fullstack

我的問題是,我沒有得到我的ID在我的控制器VehiculeDetailCtrl 。 有什麼不對?

回答

3

$stateParams使用,因爲它們是在網址定義的名稱:

$stateProvider 
    .state('vehiculeDetail', { 
    url: '/vehiculeDetail/{id}', // here we name our param as 'id' 

所以,我們現在使用的名稱id代替instanceID

.controller('VehiculeDetailCtrl', function ($scope,$stateParams) { 
    //$scope.message = $stateParams.instanceID; 
    $scope.message = $stateParams.id; 
+0

確定THX是工作;) – Mercer

+0

太棒了;)享受令人驚歎的'UI-Router',先生 –