angularjs中父,子,兄之间controller值得传递
生活随笔
收集整理的這篇文章主要介紹了
angularjs中父,子,兄之间controller值得传递
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用angularjs,發現controller間的值傳遞,比較麻煩的,以后幾篇文章會陸續說幾種方法。
一,angularjs $broadcast $emit $on的處理思想
在一個controller里面通過事件觸發一個方法,在方法里面通過$broadcast或$emit來定義一個變量,在父,子controller里面通過$on來獲取。
?
二,實例說明angularjs $broadcast $emit $on的用法
1,html代碼
<div ng-controller="ParentCtrl"> //父級 <div ng-controller="SelfCtrl"> //自己 <a ng-click="click()">click me</a> <div ng-controller="ChildCtrl"></div> //子級 </div> <div ng-controller="BroCtrl"></div> //平級 </div>?
2,js代碼
phonecatControllers.controller('SelfCtrl', function($scope) { $scope.click = function () { $scope.$broadcast('to-child', 'child'); $scope.$emit('to-parent', 'parent'); } }); phonecatControllers.controller('ParentCtrl', function($scope) { $scope.$on('to-parent', function(d,data) { console.log(data); //父級能得到值 }); $scope.$on('to-child', function(d,data) { console.log(data); //子級得不到值 }); }); phonecatControllers.controller('ChildCtrl', function($scope){ $scope.$on('to-child', function(d,data) { console.log(data); //子級能得到值 }); $scope.$on('to-parent', function(d,data) { console.log(data); //父級得不到值 }); }); phonecatControllers.controller('BroCtrl', function($scope){ $scope.$on('to-parent', function(d,data) { console.log(data); //平級得不到值 }); $scope.$on('to-child', function(d,data) { console.log(data); //平級得不到值 }); });?
?
3,點擊Click me的輸出結果
child parent?
用$broadcast賦的值,只能子級得到值;$emit賦的值,只能父級得到;而平級的什么都不能得到。
轉載請注明
作者:海底蒼鷹
轉載于:https://www.cnblogs.com/rushintocloud/p/4811258.html
總結
以上是生活随笔為你收集整理的angularjs中父,子,兄之间controller值得传递的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转载:QTableView中嵌入可视化组
- 下一篇: Sublime Text 无法使用Pac