zoukankan      html  css  js  c++  java
  • angularjs2中的父子组件通信

    父组件模板中引用子组件

     // father  template: ...
    
        <child-item [name] = "fatherItemName" > </child-item>
    
    //...`
    

    其中”fatherItemName” 为父组件中的属性,[name] 为子组件的输入

    在子组件中使用 @Input() name 来接受父组件传递的值

    如果在接收值前需要进行一些处理,可以使用setter 拦截输入属性

    _name: string = '';
    
    @Input()
    
    set nameStr(name: string){
    
    _name = "father name:" + name;
    
    }
    

    这时的 _name 作为临时变量,作为set 和get的中转。其实_name就是我们要组件中要用到的真实属性
    父组件中:
    < child-item [namestr] = “fatherItemName” >
    name -> namestr
    使用getter 输出

    get nameStr(){ return _name; }

    插值时 {{ nameStr }}

    子到父组件之间的数据传递

    1. 事件传值

        // father  template: ...
    
        <child-item (childEvent) = "fatherFunction($event)">  </child-item>
    
        //...
    
          export class FatherComponent{
    
            fatherFunction(){
    
              alert('hello!');
    
          }
    
        }
    

    子组件

        //...
        < p (click) = "clickThis"> click </ p>
        //...
        @Output() childEvent = new EventEmitter<boolean>();
        clickThis(){
        this.childEvent.emit();
        }
    

    2.父组件通过局部变量获取子组件的引用

    <child-item [name] = "fatherItemName" #name > </child-item>
    

    子组件通过#绑定一个name的局部变量来访问子组件的属性

    3.使用@ViewChild 获取子组件的引用

    @ViewChild(ChildComponent)  child: ChildComponent;
    
  • 相关阅读:
    编译原理-词法分析01-扫描程序
    编译原理-概论-02
    编译原理-概论-01
    web api :Action Results in Web API 2
    git 学习笔记7--branch
    git 学习笔记6--remote & log
    杭电acm 1230 火星a+b(进制)
    杭电acm 1214 圆桌会议(冒泡排序)
    杭电acm 1210 Eddy's 洗牌问题
    杭电acm 1207 汉诺塔II
  • 原文地址:https://www.cnblogs.com/littlemonk/p/7375486.html
Copyright © 2011-2022 走看看