Angular.js 依赖注入问题
问题描述
//定义A模块var A = angular.module(’a’,[]);A.value(’time’,new Date());//定义B模块var B = angular.module(’b’,[’a’]);B.controller(’conB’,function($scope,time){ $scope.b = time.getFullYear();});<p ng-controller = 'conB'> {{b}} //--> 2016</p>———————————————————————————————————————— //定义A模块var A = angular.module(’a’,[]);A.controller(’conA’,function($scope){ $scope.a = 12;});//定义B模块var B = angular.module(’b’,[’a’]);B.controller(’conB’,function($scope,conA){ $scope.b = conA.a;});<p ng-controller = 'conB'> {{b}} //--> {{b}}报错</p>————————————————————————————————————————
这是为什么??? 控制器之间可以进行依赖注入吗???
A.value是什么???
问题解答
回答1:value很像是个常量(除了不能在config阶段使用),看文档:
至于为什么conA不能在conB中使用的问题,纯粹是你玩错了路子,首先,这种controller之间互相依赖的方式就不推荐;其次,如果你非要这么玩,代码也不是那么写的:
//定义B模块var B = angular.module(’b’,[’a’]);B.controller(’conB’,function($scope, $controller){ var ctrlAViewModel = $scope.$new(); $controller(’conA’,{$scope : ctrlAViewModel }); $scope.b = ctrlAViewModel.a;});回答2:
用的手机简单说下:
var B = angular.module(’b’,[’a’])这就话是说 B模块依赖了A模块,然后
B.controller(’conB’,function($scope,time){ $scope.b = time.getFullYear(); });
就是说 在B模块的 Conteoller 中注入 time,用这种方式注入的话,要注入的类必须和定义一样。如果想用第二种方式,也就是你写的下面这种的话要这样,可以使用 $inject,这样也可以避免压缩代码变量简写的问题。
相关文章:
1. $fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题2. python - 求一个在def中可以实现调用本def满足特定条件continue效果的方法(标题说不太清楚,请见题内描述)3. mysql - SQL操作时间的函数?4. javascript - 用表单提交两个时间段请求后台返回对应数据时出现的一些问题!5. java - mybatis怎么实现在数据库中有就修改,没有就添加6. MYSQL新建用户设置可以远程访问的问题7. angular.js - angularjs的自定义过滤器如何给文字加颜色?8. node.js - nodejs和前端JavaScript 字符串处理结果不一样是什么原因?9. docker-compose中volumes的问题10. docker api 开发的端口怎么获取?
![$fields = $values = [];这条代码一直定义不了,一直报错,老师的源码也是被报错的,执行不了,请问该怎么解决这个问题](http://www.haobala.com/attached/image/news/202205/093622cb60.png)