2016-11-26 4 views
0

quand je cours le code comme ceci mon contrôleur arrête de fonctionner et il arrive avec toutes sortes de données passées avec résolution, d'api ou de toute autre manière .. je ne peux rien passer à mon contrôleurUI-routeur (résolution) ne peut pas transmettre des données dans le contrôleur

> $urlRouterProvider.otherwise('/movies') 
>     $stateProvider 
>       .state('movies', { 
>         url: '/movies', 
>         templateUrl: 'templates/movies.html', 
>         controller: 'indexCtrl', 
>         resolve: { 
>           resolveParam: function(){ 
>             return 'sdsadasdasd' 
>             } 
>         } 
>       }) 
> 
>   }]); 
> 
> 
>   app.controller('indexCtrl', ['$scope', 'resolveParam',    function($scope, resolveParam) { 
>    $scope.click = function() { 
>       alert(); 
> 
> 
> 
>     } 
>   }]); 

aussi longtemps que je le lance comme ça, cela fonctionne parfaitement bien

app.controller('indexCtrl', ['$scope', function($scope) { 
      $scope.click = function() { 
        alert(); 
      } 
    }]); 

même si mon état semble toujours même comme ci-dessus ..

+0

Votre résolution doit retourner un promettre. – user2085143

+0

alors il devrait fonctionner comme ceci http://pokit.org/get/img/9968e3ce68f6d8e13d7b4c35c66a5b9b.jpg mais il n'y a pas – Kerim092

+0

Y at-il une erreur sur la trace de la pile? – vistajess

Répondre

0

Vous pourriez avoir une faute de frappe, ou un autre h erreur d'ard-to-trace. JSfiddle basé sur votre code fonctionne très bien.

http://jsfiddle.net/vcx171qa/

JS

angular.module('app', ['ui.router']) 
    .config(['$urlRouterProvider', '$stateProvider', function($urlRouterProvider, $stateProvider) { 
    $urlRouterProvider.otherwise('/movies') 
    $stateProvider 
     .state('movies', { 
     url: '/movies', 
     template: '<div>{{resolveParam}}</div>', 
     controller: 'indexCtrl', 
     resolve: { 
      resolveParam: function() { 
      return 'sdsadasdasd'; 
      } 
     } 
     }) 

    }]) 

.controller('indexCtrl', ['$scope', 'resolveParam', function indexCtrl($scope, resolveParam) { 
    $scope.resolveParam = resolveParam; 
}]); 

HTML

<html> 
    <head> 
     <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.9/angular.js"></script> 
     <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.3.2/angular-ui-router.js"></script> 
    </head> 
    <body ng-app="app" class="ng-scope"> 
     <ui-view></ui-view> 
    </body> 
</html> 

Sortie

enter image description here

+0

ahh oui probablement, n'a pas eu le temps de le comprendre donc j'ai fait requête http à l'intérieur de la méthode du contrôleur .. de toute façon merci les gars – Kerim092