Maison > Questions et réponses > le corps du texte
//定义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是什么???
黄舟2017-05-15 17:05:14
value
ressemble beaucoup à une constante (sauf qu'il ne peut pas être utilisé dans l'étape config
), voir la documentation :
Quant à la raison pour laquelle conA
ne peut pas être utilisé dans conB
, c'est simplement parce que vous jouez dans le mauvais sens. Premièrement, cette manière d'interdépendance entre controller
n'est pas recommandée. en faisant ce Play, le code n'est pas écrit comme ça :
//定义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;
});
给我你的怀抱2017-05-15 17:05:14
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.