Angularjs 解决在单独文件/模块中不将vlaue返回控制器的问题

Angularjs 解决在单独文件/模块中不将vlaue返回控制器的问题,angularjs,angular-ui-router,Angularjs,Angular Ui Router,文件[myapp.js] $stateProvider.state('view6', { resolve: {simpleObj: function(){ return {'value':"hello"}; }} controller:'MyCtrl6' }); 当MyCtrl6存在于单独的文件/模块中时,无法将已解析的依赖项传递给MyCtrl6 文件[controllers.js] angular.module('myApp.controllers

文件[myapp.js]

$stateProvider.state('view6', {
       resolve: {simpleObj: function(){ return {'value':"hello"}; }}
       controller:'MyCtrl6'
        });
当MyCtrl6存在于单独的文件/模块中时,无法将已解析的依赖项传递给MyCtrl6

文件[controllers.js]

angular.module('myApp.controllers', [])
  .controller('MyCtrl6',['$scope',function($scope,simpleObj) {
        console.log(simpleObj.value);
        }]);
输出:“未定义”

然而,以下工作:

 $stateProvider.state('view6', {
       resolve: {simpleObj: function(){ return {'value':"hello"}; }
       controller:function(simpleObj){console.log(simpleObj.value);}
        });
请原谅剪切粘贴omissons,但我认为这应该传达出问题所在


谢谢-

似乎存在错误类型的参数:

.controller('MyCtrl6',['$scope',function($scope,simpleObj) {
而我们应该看到

.controller('MyCtrl6',['$scope', 'simpleObj' ,function($scope,simpleObj) {
这也应该回答为什么这是可行的:

controller:function(simpleObj){

因为我们确实使用了不同的符号将对象传递到控制器

似乎我是在部分模板中调用控制器

div ng-controller='MyCtrl3'
显然,当您在stateProvider路由定义中定义控制器时,这会造成一些混乱


谁知道呢

谢谢,但是当我尝试这样做时,我只是在simpleObj上得到了一个未定义/未加载的错误。似乎未解决的依赖关系正在引发一个问题。对我来说似乎是自相矛盾的看到你的完整代码会很好,也许在一个垃圾桶里。。。然后我们可以检查真正的问题是什么。因为参数、声明的和预期的必须匹配在一起,否则您将收到错误实例化的控制器。此外,解析函数必须正确,因为它与内联控制器一起工作。最后,resolve语句的末尾应该有逗号。简单-具有可重复错误的plunker将加快发现问题的速度