Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用*ngIf angular 2在文本区域中渲染数据或<;p>;取决于用户操作?_Angular - Fatal编程技术网

如何使用*ngIf angular 2在文本区域中渲染数据或<;p>;取决于用户操作?

如何使用*ngIf angular 2在文本区域中渲染数据或<;p>;取决于用户操作?,angular,Angular,我正在做一个可点击的评论小部件原型。目前,我正在文本区域内显示评论。我希望文本区域被禁用,除非选择了“编辑”选项,并且我希望始终显示文本区域的最多3行。根据下面的代码使用textarea和*ngIf的问题是,如果在单击“编辑”后为{{note.note}}提供了任何输入,那么一旦单击另一个文本区域的编辑选项,输入就会丢失。如果我不使用*ngIf,那就不会发生这种情况。但是,如果不使用ngIf,我怎么能改变样式并禁用textarea,无论是否选中?我尝试使用*ngIf在文本区域或段落之间切换,但如

我正在做一个可点击的评论小部件原型。目前,我正在文本区域内显示评论。我希望文本区域被禁用,除非选择了“编辑”选项,并且我希望始终显示文本区域的最多3行。根据下面的代码使用textarea和*ngIf的问题是,如果在单击“编辑”后为{{note.note}}提供了任何输入,那么一旦单击另一个文本区域的编辑选项,输入就会丢失。如果我不使用*ngIf,那就不会发生这种情况。但是,如果不使用ngIf,我怎么能改变样式并禁用textarea,无论是否选中?我尝试使用*ngIf在文本区域或段落之间切换,但如果这样做,我也会丢失在单击“编辑”另一个条目后键入的任何注释


{{note.name}
{{注.日期}
{{note.note}
{{note.note}

  • edit
  • 删除 保存 取消
    您只能使用一个文本区域:


    {{note.note}

    您只能使用一个文本区域:


    {{note.note}}

    我假设您希望访问此人键入的信息,以便保存到您的后端(或类似内容)。如果是这种情况,那么您实际上需要捕获存储在文本区域中的数据,而不是存储在textarea HTML元素中

    有许多方法可以捕获在文本区域中输入的文本。最简单的方法是使用ngModel并将文本区域绑定到组件的成员变量。这样,当有人在文本区域中键入内容时,ngIf删除该组件时不会丢失该内容

    因此,将FormsModule从“@angular/forms”导入到您的NgModule中,然后在文本区域添加一个[(ngModel)]=“variable”绑定,其中variable是组件的成员变量

    大概

     <textarea [ngClass]="{'note-text':true, 'editable':note===selectedNote}"
               [disabled]="note!=selectedNote"
               [(ngModel)]="note.note"></textarea>
    
    
    

    而且,根据@Danilo Silveria的建议,与其使用两个文本区域,一个是禁用的,另一个不是,不如使用一个到禁用属性的绑定

    我假设您希望访问此人键入的信息以保存到您的后端(或类似内容)。如果是这种情况,那么您实际上需要捕获存储在文本区域中的数据,而不是存储在textarea HTML元素中

    有许多方法可以捕获在文本区域中输入的文本。最简单的方法是使用ngModel并将文本区域绑定到组件的成员变量。这样,当有人在文本区域中键入内容时,ngIf删除该组件时不会丢失该内容

    因此,将FormsModule从“@angular/forms”导入到您的NgModule中,然后在文本区域添加一个[(ngModel)]=“variable”绑定,其中variable是组件的成员变量

    大概

     <textarea [ngClass]="{'note-text':true, 'editable':note===selectedNote}"
               [disabled]="note!=selectedNote"
               [(ngModel)]="note.note"></textarea>
    
    
    

    而且,根据@Danilo Silveria的建议,与其使用两个文本区域,一个是禁用的,另一个不是,不如使用一个绑定到禁用的属性

    这是可行的,尽管我在本例中必须删除*ngIf才能使其工作。这是可行的,尽管我在本例中必须删除*ngIf才能使其工作。