我想在一行中使用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) 我正在尝试使用引导程序创建一个选项卡组件。
<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
它在第二个选项卡中打印两个描述,将第一个留空。
感谢任何帮助!
我正在尝试使用设置表单控件*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)
任何帮助都会很棒
我的表单中有一个带有多个选项的 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的新手,所以我想寻求帮助。这是我的第一个问题,请耐心等待。
我想为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正确地注入了包装服务中?我究竟做错了什么?
提前致谢。
一个小问题请帮忙
模板解析错误:\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) 我有一个使用 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)