如果在单独的文件/模块中,则解决不将值返回到控制器

时间:2014-09-11 17:39:47

标签: angularjs angular-ui-router

FILE [myapp.js]

$stateProvider.state('view6', {
       resolve: {simpleObj: function(){ return {'value':"hello"}; }}
       controller:'MyCtrl6'
        });

当MyCtrl6存在于单独的文件/模块中时,无法将已解析的依赖项传递给MyCtrl6。

FILE [controllers.js]

angular.module('myApp.controllers', [])
  .controller('MyCtrl6',['$scope',function($scope,simpleObj) {
        console.log(simpleObj.value);
        }]);

OUTPUT:'undefined'

然而,以下工作:

 $stateProvider.state('view6', {
       resolve: {simpleObj: function(){ return {'value':"hello"}; }
       controller:function(simpleObj){console.log(simpleObj.value);}
        });

请原谅我删除的遗漏,但我认为这应该传达有问题的问题。

谢谢 -

2 个答案:

答案 0 :(得分:1)

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

.controller('MyCtrl6',['$scope',function($scope,simpleObj) {

虽然我们应该看到

.controller('MyCtrl6',['$scope', 'simpleObj' ,function($scope,simpleObj) {

也应该回答为什么这样做:

controller:function(simpleObj){

因为我们确实使用了不同的表示法将对象传递给Controller

答案 1 :(得分:1)

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

div ng-controller='MyCtrl3'

显然,当您在stateProvider路由定义中定义控制器时,这可能会导致一些混乱。

谁知道?