UI-Router(解决)无法将数据传递到控制器
Posted
技术标签:
【中文标题】UI-Router(解决)无法将数据传递到控制器【英文标题】:UI-Router (resolve) cant pass data into controller 【发布时间】: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();
]);
即使我的状态仍然和上面一样..
【问题讨论】:
你的 resolve 需要返回一个 promise。 那么它应该像这样pokit.org/get/img/9968e3ce68f6d8e13d7b4c35c66a5b9b.jpg 工作,但它没有 堆栈跟踪是否有错误? 只是前端应用,在 VS Code 中工作 【参考方案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 请求.. 无论如何,谢谢大家以上是关于UI-Router(解决)无法将数据传递到控制器的主要内容,如果未能解决你的问题,请参考以下文章
无法从状态“家”解决“___” - 角度 ui-router 问题
如何将数据传递给嵌套控制器(UIContainerView)?