Angular.js 依賴注入問(wèn)題
問(wèn)題描述
//定義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}}報(bào)錯(cuò)</p>————————————————————————————————————————
這是為什么??? 控制器之間可以進(jìn)行依賴注入嗎???
A.value是什么???
問(wèn)題解答
回答1:value很像是個(gè)常量(除了不能在config階段使用),看文檔:
至于為什么conA不能在conB中使用的問(wèn)題,純粹是你玩錯(cuò)了路子,首先,這種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:
用的手機(jī)簡(jiǎn)單說(shuō)下:
var B = angular.module(’b’,[’a’])這就話是說(shuō) B模塊依賴了A模塊,然后
B.controller(’conB’,function($scope,time){ $scope.b = time.getFullYear(); });
就是說(shuō) 在B模塊的 Conteoller 中注入 time,用這種方式注入的話,要注入的類必須和定義一樣。如果想用第二種方式,也就是你寫的下面這種的話要這樣,可以使用 $inject,這樣也可以避免壓縮代碼變量簡(jiǎn)寫的問(wèn)題。
相關(guān)文章:
1. 數(shù)據(jù)庫(kù) - mysql boolean型無(wú)法插入true2. php - mysql連表統(tǒng)計(jì)查詢3. mysql - 在下剛?cè)腴Tsql 關(guān)于sql的語(yǔ)法詢問(wèn)4. mysql事務(wù)日志的一些問(wèn)題5. MySQL分表之后如何做排序的問(wèn)題6. MySQL不知道錯(cuò)哪里了?7. mysql - 測(cè)試不同sql語(yǔ)句的查詢效率8. mysql中有沒(méi)有當(dāng)這條數(shù)據(jù)存在的時(shí)候不插入,不存在則插入9. mysql - 無(wú)恥的請(qǐng)教一條sql10. phpstuty 修改完監(jiān)聽端口,apache無(wú)法啟動(dòng)
