美文网首页
angular@Input用法

angular@Input用法

作者: 春木橙云 | 来源:发表于2019-10-08 09:30 被阅读0次

    使用angular一周,组件传值和react不同,因此整理如下,以备后查!

    @Input是angular提供给父元素传递信息的窗口,功能顾名思义——输入值。
    具体用法如下:

    • 父组件
    //parent.component.ts
    import { Component, Input } from '@angular/core'
    
    @Component({
        selector: 'parent',
        templateUrl: './parent.component.html'
    })
    
    export class ParentComponent {
        parentData: {
          data1:string =  '测试字符串1'
        }
    }
    
    
    //parent.component.html
        <div>
            <child [childData]="parentData"></child>
        </div
    
    

    在父组件上定义了parentData对象,在HTML文件中,包含了子组件<child />。这里需要介绍angular属性绑定方法[属性名],在方括号中加入属性名比如srchref等,当然可以自定义,比如这里的childData。这个地方相当于将父组件要传递给子组件的对象parentData赋给子组件属性childData。这样子组件只要定义好@Input装饰器就能拿到parentData对象。

    • 子组件
    //child.component.ts
    import { Component, Input } from '@angular/core';
    
    @Component({
      selector: 'child',
      templateUrl: './child.component.html'
    })
    
    export class ChildComponent {
      @Input() childData;
    }
    

    另外,Input 装饰器支持一个可选的参数,用来指定组件绑定属性的名称。如果没有指定,则默认使用 @Input 装饰器,装饰的属性名。比如:

    • 父组件
    //parent.component.ts
    import { Component, Input } from '@angular/core'
    
    @Component({
        selector: 'parent',
        templateUrl: './parent.component.html'
    })
    
    export class ParentComponent {
        parentData: {
          data1:string =  '测试字符串1'
        }
    }
    
    
    //parent.component.html
        <div>
            //改了这里
            <child [jianshu]="parentData"></child>
        </div
    
    
    • 子组件
    //child.component.ts
    import { Component, Input } from '@angular/core';
    
    @Component({
      selector: 'child',
      templateUrl: './child.component.html'
    })
    
    export class ChildComponent {
       //命了个名
      @Input('jianshu') childData;
    }
    

    the end!

    相关文章

      网友评论

          本文标题:angular@Input用法

          本文链接:https://www.haomeiwen.com/subject/aalxyctx.html