【问题标题】:UI-Router (resolve) cant pass data into controllerUI-Router(解决)无法将数据传递到控制器
【发布时间】:2017-04-10 19:11:12
【问题描述】:

当我运行这样的代码时,我的控制器停止工作,并且它发生在通过解析传递的各种数据,从 api 或任何其他方式.. 我无法将任何东西传递给我的控制器

> $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();
> 
> 
> 
>                 }
>         }]);

只要我这样运行它就可以正常工作

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

即使我的状态仍然和上面一样..

【问题讨论】:

标签: javascript jquery angularjs angular-ui-router resolve


【解决方案1】:

您可能有错字或其他难以追踪的错误。 基于您的代码的 JSfiddle 运行良好。

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>

输出

【讨论】:

  • 嗯,是的,可能没有时间弄清楚,所以我在控制器方法中发出了 http 请求.. 无论如何,谢谢大家
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-07
  • 2016-04-08
  • 1970-01-01
  • 2018-02-24
  • 2013-04-09
相关资源
最近更新 更多