博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
angular 组件之间传值
阅读量:5138 次
发布时间:2019-06-13

本文共 2842 字,大约阅读时间需要 9 分钟。

/** * Created by Administrator on 2017/8/28. */var app =angular.module('app',[]);app.directive('food',function () {    return {        restrict:"E",        scope:[],        controller:function($scope){            $scope.foods=[];            this.addApple=function () {                $scope.foods.push("apple");            }            this.addOrange=function () {                $scope.foods.push("orange");            }            this.addBanana=function () {                $scope.foods.push("banana");            }        },        link:function ($scope,element,attrs) {            element.bind("mouseenter",function () {                console.log($scope.foods)            });        }    }});app.directive('apple',function () {    return {        require:'food',        link:function($scope,element,attrs,foodCtrl){            foodCtrl.addApple();        }    }});app.directive('orange',function () {    return {        require:'food',        link:function($scope,element,attrs,foodCtrl){            foodCtrl.addOrange();        }    }});app.directive('banana',function () {    return {        require:'food',        link:function($scope,element,attrs,foodCtrl){            foodCtrl.addBanana();        }    }});app.directive('hello',function(){    return {        restrict:"E",        replace:true,        template:'
{
{txt}}
', link:function($scope,element,attrs){ $scope.$watch('txt',function(newVal,oldVal){ if(newVal==="error"){ console.dir(element); element.attr("style","border:solid 1px red"); }else{ element.attr("style",""); } }); } }});app.controller('OneSelfController',function($scope){ $scope.clkme=function(){ $scope.$broadcast('sendChild','我给子控制器传递数据'); $scope.$emit('sendParent','冒泡到父元素') }}).controller('ParentController',function($scope){ $scope.$on('sendParent',function(event,data){
//监听在子控制器中定义的 sendParent 事件 console.log('OneSelfController传过来的',data,event.name,event);//事件名称:sendParent }); $scope.clkP=function(){ $scope.$broadcast('sendAllChild','让siblingsController接收到'); }}).controller('ChildController', function($scope){ $scope.$on('sendChild', function(event,data) {
//监听在子控制器中定义的 sendChild 事件 console.log('ChildCtrl', data,event.name,event);// 事件名称:sendChild });}).controller('siblingsController', function($scope){ $scope.$on('sendAllChild',function(event,data) { console.log('值过来吧', data); }); //下面事件不会触发 $scope.$on('sendParent', function(event,data) { console.log('平级得不到值', data); }); $scope.$on('sendChild', function(event,data) { console.log('平级得不到值', data); });});

 

转载于:https://www.cnblogs.com/guozhe/p/7462281.html

你可能感兴趣的文章
ECMAscript6——1
查看>>
GCD下的几种实现同步的方式
查看>>
重温Javascript(一)-基本概念
查看>>
java泛型学习笔记
查看>>
hdu 1062 Text Reverse 字符串
查看>>
剖析SSH核心原理(一)
查看>>
笔试面试算法
查看>>
idea 新建一个java项目并运行
查看>>
中南大学2018年ACM暑期集训前期训练题集(入门题) Q: Simple Line Editor
查看>>
Redis常用配置redis.conf
查看>>
hdu 1008(简单数学)
查看>>
Apollo配置中心
查看>>
窥探:闪存盘加密区攻防实战
查看>>
Js/Jquery获取iframe中的元素
查看>>
optparse模块OptionParser
查看>>
[USACO 2016 Dec Gold] Tutorial
查看>>
cin.get ()的用法:
查看>>
QT_自定义信号量和槽
查看>>
linux下安装composer
查看>>
区块链,将如何重新定义世界
查看>>