小编Sha*_*mor的帖子

在响应式表格上的​​自定义验证器,用于密码和确认密码匹配,将未定义的参数转换为Angular 4

我正在尝试实现自定义验证器来检查密码和密码确认是否相等.问题是验证器正在获取未定义的密码和确认的密码参数.我该如何做这项工作.该函数有效,如果我将条件更改为===而不是!==当字段相同时,它会正确抛出错误.有谁知道这里的错误是什么?

signup.component.html

<div class="col-md-7 col-md-offset-1 col-sm-7">
  <div class="block">
    <div class="well">
        <form (onSubmit)="onSubmit()" [formGroup]="signUpForm">
          <div class="form-group">
            <label for="username" class="control-label">Nombre de usuario:</label>
            <input type="text" class="form-control" formControlName="username"  title="Please enter your username" placeholder="username">
            <p class="help-block" *ngIf="signUpForm.get('username').hasError('required') && signUpForm.get('username').touched">El nombre de usuario es obligatorio</p>
            <p class="help-block" *ngIf="signUpForm.get('username').hasError('minlength') && signUpForm.get('username').touched">El nombre de usuario debe tener al menos 6 caracteres</p>
            <p class="help-block" *ngIf="signUpForm.get('username').hasError('maxlength') && signUpForm.get('username').touched">El nombre de usuario debe tener menos de 15 caracteres</p>
          </div>
          <div class="form-group">
            <label for="email" class="control-label">E-mail:</label>
            <input class="form-control" formControlName="email" title="Please enter your email" …
Run Code Online (Sandbox Code Playgroud)

javascript angular-validation angular angular-reactive-forms

26
推荐指数
4
解决办法
3万
查看次数

Angular4/Typescript中的Angular ForEach?

当我搜索这个时,我看到很多关于使用ngFor的答案,但我理解ngFor.我问的angular.forEach()是我的Angular 1控制器中使用的构造函数.这些标记为TS中的错误,不进行编译.

例如,我有一个嵌套循环:

 _this.selectChildren = function (data, $event) {
  var parentChecked = data.checked;
  angular.forEach(_this.hierarchicalData, function (value, key) {
    angular.forEach(value.children, function (value, key) {
      value.checked = parentChecked;
    });
  });
};
Run Code Online (Sandbox Code Playgroud)

这个构造在Angular 4的Typescript中是什么样的?

javascript foreach typescript angular

15
推荐指数
3
解决办法
13万
查看次数

如何打开Md-dialog全屏angular4?

我试图使用配置传递一些属性值.但对话框无法全屏显示.

openTwigTemplate(): void {
  let config = new MdDialogConfig();
  config = {
    position: {
      top: '10px',
      right: '10px'
    },
    height: '98%',
    width: '100vw',
  };
  const dailog = this.dialog.open(TwigDialogComponent, config);
}
Run Code Online (Sandbox Code Playgroud)

如何根据分辨率打开对话框全屏?

mddialog angular-material2 angular

8
推荐指数
3
解决办法
7126
查看次数

禁用不使用 formControlName 进入角度 2 中的模型驱动表单?

我正在使用模型驱动模板。如果未选中复选框,我想禁用输入。但它不适用于 formControlName。我尝试了三种方式。给这里

 1.disabled="!filterForm.value.customer_limit"
 2.[disabled]="!filterForm.value.customer_limit"
 3.[readonly]="!filterForm.value.customer_limit"
Run Code Online (Sandbox Code Playgroud)

这是我的 HTML 代码:

 <md-checkbox [checked]="filterForm.value.customer_limit" formControlName="customer_limit">
                        <md-input-container class="full-width">
                            <input mdInput
                                   formControlName="customer_limit_input"
                                   [disabled]="!filterForm.value.customer_limit"
                                   placeholder="Limit to customers">
    </md-input-container>
    </md-checkbox>
Run Code Online (Sandbox Code Playgroud)

有任何想法请帮助我。谢谢

angular

7
推荐指数
1
解决办法
2万
查看次数

无法实例化循环依赖!ApplicationRef("[ERROR - >]"):在./AppModule@-1:-1中的NgModule AppModule中

我已将此代码添加到我的app.module.ts中

    providers: [ AppConfigService,
            {
                provide: APP_INITIALIZER,
                useFactory: (config: AppConfigService) => () => config.getAppConfig(),
                deps: [AppConfigService],
                multi: true
            },
]
Run Code Online (Sandbox Code Playgroud)

得到这个错误

在此输入图像描述

问题:我已经使用ngx-permission pkg获得许可.我设置了路由权限方法.但是当我刷新页面时,主页上的时间重定向却停留在当前页面上.所以我试图在应用程序启动方法之前加载权限来解决此问题但是出现了此错误.

 config.getAppConfig() // call when application start up
Run Code Online (Sandbox Code Playgroud)

有任何想法请帮忙.其他解决方案也欢迎.

angular

6
推荐指数
2
解决办法
4021
查看次数

漂亮的Json对象在HTML中

如何在html中打印JSON对象?我试过这个解决方案, 但没有工作.请帮助我实现这一目标.我尝试过使用json烟斗:

<div class="box box-default">                     
    <pre>{{placeDetail |json}}</pre>                  
</div>
Run Code Online (Sandbox Code Playgroud)

html angular

5
推荐指数
2
解决办法
9615
查看次数

仅在生产环境中,在 Gatsby 的动态路由中重新加载页面时出现 404

这是我的 gatsby-node.js 代码


exports.onCreatePage = async ({ page, actions }) => {
    const { createPage } = actions;

    // Only update the `/blogs` page.
    if (page.path.match(/^\/blog/)) {
        // page.matchPath is a special key that's used for matching pages
        // with corresponding routes only on the client.
        page.matchPath = "/blog/*";

        // Update the page.
        createPage(page)
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我在博客页面上包含的路线。

 return (
        <Layout>
            <Router basepath="/blog">
                <BlogPage path="/" blogs={blogs} tags={tags} categories={categories}/>
                <BlogDetail path="/:slug" blogs={blogs} tags={tags.data}/>
                <Category path="/category/:category" blogs={blogs} tags={tags.data} categories={categories.data}/>
                <Category path="/tags/:tag" blogs={blogs} tags={tags.data} …
Run Code Online (Sandbox Code Playgroud)

routes reactjs gatsby

5
推荐指数
1
解决办法
2057
查看次数

angular 2 formbuilder条件验证输入

我使用angular 2 formbuilder来创建一个表单,我想根据无线电盒输入的变化有条件地验证输入字段.当我点击百分比单选框时,应该验证百分比输入.当我点击金额单选框时,它应该验证金额输入字段.

HTML代码

(我正在使用材料输入组件)

<md-radio-group formControlName="splitType" (click)="splitTypeClicked()">
      <md-radio-button value="amount">Amount</md-radio-button>
      <md-radio-button value="percentage">Percentage</md-radio-button>
</md-radio-group>

<input  mdInput  placeholder="Amount" formControlName="amount"  >
<input  mdInput   placeholder="Percentage" formControlName="percentage"  >
Run Code Online (Sandbox Code Playgroud)

角度2分量

constructor(private fb: FormBuilder){}

  ngOnInit() {

    this.splitChargeForm = this.fb.group({
      splitType: ['', Validators.required],
      amount: [''],        //validate when splitType = amount
      percentage: ['']     //validate when splitType = percentage

   });
Run Code Online (Sandbox Code Playgroud)

angular2-formbuilder reactive-forms angular

2
推荐指数
1
解决办法
1157
查看次数

将自定义验证动态删除到Angular 2中

如果选中复选框,我想要设置输入.验证工作正常,但当我取消选中复选框时,我删除了所需的验证.但表单无效,保存按钮未启用.

在这里我的formbuilder.

this.filterForm = this.formBuilder.group(
                {
                    has_not_visited_in_days_group: this.formBuilder.group({
                        has_not_visited_in_days: [false],
                        has_not_visited_in_days_input: [''],
                    }, {validator: this.requiredIfHasNotVisitedChecked}),
                 });
Run Code Online (Sandbox Code Playgroud)

这里有自定义验证器功能

requiredIfHasNotVisitedChecked(control: AbstractControl): void {
        const input = control.get('has_not_visited_in_days_input').value;
        const inputCheckbox = control.get('has_not_visited_in_days').value;
        control.get('has_not_visited_in_days_input').setValidators([]);
        if (inputCheckbox) {
            if (input === '' || input === null) {
                control.get('has_not_visited_in_days_input').setValidators([Validators.required]);
            }else {
                control.get('has_not_visited_in_days_input').setValidators([]);
            }
        }else{
            control.get('has_not_visited_in_days_input').setValidators([]);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我也试过了

  control.get('has_not_visited_in_days_input').setValidators(null);
Run Code Online (Sandbox Code Playgroud)

提前致谢.有任何想法请帮助我.

validation angular

1
推荐指数
1
解决办法
4551
查看次数