//定义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是什么???
value
ressemble beaucoup à une constante (sauf qu'il ne peut pas être utilisé dans l'étapeconfig
), voir la documentation :Quant à la raison pour laquelle
conA
ne peut pas être utilisé dansconB
, c'est simplement parce que vous jouez dans le mauvais sens. Premièrement, cette manière d'interdépendance entrecontroller
n'est pas recommandée. en faisant ce Play, le code n'est pas écrit comme ça :Une brève description du téléphone mobile utilisé :
var B = angulaire.module('b',['a'])
Cela signifie que le module B dépend du module A, et ensuite
B.controller('conB',function($scope,time){ $scope.b = time.getFullYear(); });
C'est-à-dire que le temps est injecté dans le Conteoller du module B. S'il est injecté de cette manière, la classe à injecter doit être la même que la définition. Si vous souhaitez utiliser la deuxième méthode, c'est-à-dire si vous écrivez ce qui suit, vous pouvez utiliser $inject, ce qui peut également éviter le problème de la compression des abréviations des variables de code.