//定义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
sangat mirip dengan pemalar (kecuali ia tidak boleh digunakan dalam peringkatconfig
), lihat dokumentasi:Mengapa
conA
tidak boleh digunakan dalamconB
, ia adalah semata-mata kerana anda bermain dengan cara yang salah Pertama sekali, cara saling bergantung antaracontroller
ini tidak disyorkan; melakukan Main ini, kod tidak ditulis seperti itu:Penerangan ringkas tentang telefon bimbit yang digunakan:
var B = angular.module('b',['a'])
Ini bermakna modul B bergantung pada modul A, dan kemudian
B.controller('conB',function($scope,time){ $scope.b = time.getFullYear(); });
Maksudnya, masa disuntik ke dalam Conteoller modul B. Jika disuntik dengan cara ini, kelas yang akan disuntik mestilah sama dengan definisi. Jika anda ingin menggunakan kaedah kedua, iaitu, jika anda menulis perkara berikut, anda boleh menggunakan $inject, yang juga boleh mengelakkan masalah memampatkan singkatan pembolehubah kod.