小编yur*_*zui的帖子

在选项中使用ngIf和ngFor

我想在一行中使用ngIf和ngFor.我知道这是不可能的,但有没有其他方法可以做到这一点?

这是我的代码:

<option *ngIf="tmpLanguage.id!=languages.id" 
        *ngFor="let tmpLanguage of languages" [ngValue]="tmpLanguage.id">
     {{tmpLanguage.identificatie}}
</option>
Run Code Online (Sandbox Code Playgroud)

javascript angularjs typescript angular

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

for循环中的ng内容

我正在尝试使用引导程序创建一个选项卡组件。

<app-tabs>
  <app-tab [label]="'label1'">Description 1</app-tab>
  <app-tab [label]="'label2'">Description 2</app-tab>
</app-tabs>
Run Code Online (Sandbox Code Playgroud)

我看过这篇文章:https : //juristr.com/blog/2016/02/learning-ng2-creating-tab-component/ 但我的用例不同。

我需要<ng-content>在 for 的每个循环中使用不同的。这是我的 plunker:https ://plnkr.co/edit/N2p8Vx ? p = preview 它在第二个选项卡中打印两个描述,将第一个留空。

感谢任何帮助!

angular2-ngcontent angular

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

如何在 Angular 中使用 *ngFor 设置 formControlNames?

我正在尝试使用设置表单控件*ngFor数组中的对象来设置表单控制。根据用户的不同,有时我的数组中会有 1 个对象,但有时会有多个对象。

我的问题是我想创建一个formControlName使用循环,但不确定如何在组件中设置表单组验证器?只需像下面这样设置它们就意味着如果只有 1 个对象,则在查找formControlName不存在的另一个对象时,表单仍然无效。

因此,如果名称为“Days”的第一个对象不在列表中,“Days”仍然会出现this.form在控件中:

大批:

indicators = [
  {name:"Days",data:[250,1]},
  {name:"Multiply Average",data:[3,.25,1]}
],
Run Code Online (Sandbox Code Playgroud)

成分:

ngOnInit() {
    this.form = this._fb.group({
            "Multiply Average":['', Validators.compose([
                Validators.required
                ])],
            "Days":['', Validators.compose([
                Validators.required
                ])],
        });  
    };
Run Code Online (Sandbox Code Playgroud)

模板:

  <span
     *ngFor="let i of indicators">
          {{i.name}}: 
          <md-slider
            formControlName={{i.name}}
            color="primary"
            [max]=i.data[0]
            [thumb-label]="true"
            [step]=i.data[1]
            [min]=i.data[2]>
          </md-slider>
  </span>
Run Code Online (Sandbox Code Playgroud)

任何帮助都会很棒

typescript ngfor angular-material2 angular

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

Angular 6 Material - 在 mat-select 多个选项中更改分隔符

我的表单中有一个带有多个选项的 mat-select(您可以在此处查看演示)。

<mat-form-field style="width: 100%">
  <mat-select placeholder="Toppings" [formControl]="toppings" multiple>
    <mat-option *ngFor="let topping of toppingList" [value]="topping">{{topping}}</mat-option>
  </mat-select>
</mat-form-field>
Run Code Online (Sandbox Code Playgroud)

它在其输入字段中显示以逗号分隔的选定选项列表。有什么办法可以改变分隔符吗?

angular-material angular

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

NullInjectorError:没有MatDialog提供程序-尝试为MatDialog创建包装器服务

我是编码的新手,也是Angular的新手,所以我想寻求帮助。这是我的第一个问题,请耐心等待。

我想为Angular Material Dialog Service创建包装服务(我只是想教自己-不适用于生产应用程序),所以我在应用程序中创建了一个服务,如下所示:

import {Injectable} from '@angular/core';
import {MatDialog} from '@angular/material';

@Injectable({
  providedIn: 'root'
})
export class MatDialogWrapperService {

    constructor(private dialog: MatDialog) {
    }

    open(componentRef, config = {}) {
        this.dialog.open(componentRef, config);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我尝试将其添加到应用程序中的另一个角度组件中,如下所示:我将其导入,添加到providers数组,将其放入构造函数中,然后将其放入方法中(为了方便起见,我删除了一些代码阅读)

@Component({
    selector: 'app-intro-form',
    templateUrl: './intro-form.component.html',
    providers: [MatDialogWrapperService],
    styleUrls: ['./intro-form.component.scss']
})

  constructor(private modalService: MatDialogWrapperService ) {
  }

  modalCall() {
    this.modalService.open(ModalFormComponent, {
        width: '500px'
  });
}
Run Code Online (Sandbox Code Playgroud)

加载应用程序时,我在控制台中看到以下错误:

未处理的承诺拒绝:StaticInjectorError(AppModule)[MatDialogWrapperService-> MatDialog]:StaticInjectorError(Platform:core)[MatDialogWrapperService-> MatDialog]:

NullInjectorError:MatDialog没有提供程序!; 区域:任务:Promise.then; 值:错误:StaticInjectorError(AppModule)[MatDialogWrapperService-> MatDialog]:StaticInjectorError(平台:核心)[MatDialogWrapperService-> MatDialog]:

我以为我已经将MatDialog正确地注入了包装服务中?我究竟做错了什么?

提前致谢。

angular-material angular

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

无法绑定到“name”,因为它不是“i”的已知属性

一个小问题请帮忙

模板解析错误:\n无法绑定到 'name',因为它不是 'i' 的已知属性。

<i class="dropdown-icon btn-outline-warning icmn-spinner11"
    data-toggle="modal" data-target="#rerun_modal"
    data-name="{{ingestion_info.ingestion.name}}"
    [attr.data-target]="'#rerun_modal_' + ingestion_info.ingestion.name"
    (click)=" name = ingestion_info.ingestion.name; password=''; is_alive = false">
    Rerun
</i>
Run Code Online (Sandbox Code Playgroud)

angular

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

以编程方式强制选择primeng Listbox (p-listbox)中的一个项目。角 2/PrimeNg

我有一个使用 PrimeNg 列表框(p-listbox)显示的列表。它是一个组列表,我通过实现 ngDoCheck 生命周期钩子来观察选择的变化。ngDoCheck 下的每个更改我都创建了一个条件,该条件将检查选择是否为特定组(“Group0”)。如果用户选择“Group0”,我想将 p-listbox 的选择强制返回到先前选择的组。我能够确定先前选择的组并将其等同于 selectedGroup 但它不起作用。下面是代码:

export class AppComponent implements OnInit, DoCheck{

    selectedGroup: any;
    groups: any [] = [];
    groupList: SelectItem [] = [] ;
    differ: any;

    constructor(private differs:  KeyValueDiffers) {
       this.groups = [
         {"groupId": 1, "groupName": "Group1"},
         {"groupId": 2, "groupName": "Group2"},
         {"groupId": 3, "groupName": "Group3"},
         {"groupId": 4, "groupName": "Group4"},
         {"groupId": 5, "groupName": "Group5"},
         {"groupId": 0, "groupName": "Group0"}
      ];
      this.differ = differs.find([]).create(null);
    }


    ngOnInit() {
      this.groups.forEach(gp=> this.groupList.push({label: gp.groupName, value: gp}));
      this.selectedGroup =  this.groups[0];
    }

    ngDoCheck() { …
Run Code Online (Sandbox Code Playgroud)

primeng angular angular-forms

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