首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在angular中隐藏窗体

如何在angular中隐藏窗体
EN

Stack Overflow用户
提问于 2017-12-09 23:53:05
回答 3查看 5K关注 0票数 1

我一直试图隐藏我的表单,并使它只在用户单击按钮时显示。但是由于某些原因,我创建的函数永远不会工作。是不是我的代码出了问题?我看到了相当多使用angular.module的示例,我尝试了一下,但总是收到错误消息。

transfer.component.html

代码语言:javascript
复制
<form [formGroup]="AddRiciverForm" id="AddRiciverForm" (ngSubmit)="addRiciverFunc()" *ngIf="show">
  <div class="container">
    <div class="row">
      <div class="col-sm-6 col-sm-offset-3">
        <p><input type="email" id="emailTo" formControlName="emailTo"  placeholder="Reciver Email" [(ngModel)]="this.AddRiciverForm.value.emailTo" required></p>
      </div>  
    </div>
     <div class="row">
      <div class="col-sm-6 col-sm-offset-3">
        <p><button class="btn btn-primary" type="submit" [disabled]="!transferForm.form.valid">Add</button> </p>    
      </div>
    </div>
   </div>
  </form>
<button ng-click="AddEmailFunc()">add user</button>

transfer.component.ts

代码语言:javascript
复制
import { Component, OnInit } from '@angular/core';
import { AuthService } from '../auth.service';
import { FormBuilder, FormGroup } from '@angular/forms';
import { Router } from '@angular/router';
import { Http } from '@angular/http';
import { PostsService } from '../posts.service';

@Component({
  selector: 'app-transfer',
  templateUrl: './transfer.component.html',
  styleUrls: ['./transfer.component.css']
})
export class TransferComponent implements OnInit {

  constructor(private fb: FormBuilder, private http: Http, private router: Router, private auth: AuthService,private postsService: PostsService) { }
  transfer = {};
  addRiciver = {};
  recivers: any;
  AddRiciverForm: FormGroup;
  transferForm: FormGroup;
  public userEmail: string;
  show=false;
  ngOnInit() {
    this.transferForm = this.fb.group({
      emailTo: '',
      amount: ''
    });
    this.AddRiciverForm = this.fb.group({
      emailTo: ''
    });
    this.auth.currentEmail.subscribe(email => this.userEmail = email);

    this.postsService.getAllReciver().subscribe(reciver => {
      this.recivers = reciver;
    });
  }
  transFunds(){

  }
  addRiciverFunc(){    
        this.addRiciver={
          emailFrom: this.userEmail,
          emailTo: this.AddRiciverForm.value.emailTo
        }
        this.http.post('/transfer', this.addRiciver)
        .subscribe(res => {
            let id = res['_id'];

          }, (err) => {
            console.log(err);
          }
        );


  }

  AddEmailFunc(){
  if(!this.show){
    this.show = true;
  }

  }
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-12-10 00:25:19

您必须尝试在表单上添加[hidden]="AddEmailFunc()"

请参阅我的示例代码

代码语言:javascript
复制
import { Component } from '@angular/core';

@Component({
    selector: 'Sandbox',
    template: `<form [hidden]="isDisplayed">
    <label>Sample: </label>
    <input type="text">
    </form>

    <button (click)="showMe()">Click</button>`
})

export class SandboxComponent{
    isDisplayed = true;

    showMe()
    {
        if(this.isDisplayed)
        {
            this.isDisplayed = false;
        }else{
            this.isDisplayed = true;
        }
    }
}

希望能有所帮助。:)干杯!

票数 5
EN

Stack Overflow用户

发布于 2017-12-09 23:58:21

你混合了angularjs (1.x)和angular (>2)

Angular中的ng-click应为:

代码语言:javascript
复制
<button (click)="AddEmailFunc()">add user</button>

如果这不能解决您的问题,请张贴完整的组件。

票数 0
EN

Stack Overflow用户

发布于 2017-12-10 04:04:12

您可以在按钮的事件单击中使用*ngIf和(model)绑定。

代码语言:javascript
复制
<button (click)="changeView()">add user</button>

和clickEvent

代码语言:javascript
复制
changeView(){
   this.showForm = !this.showForm;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47730315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档