小编Afi*_*Afi的帖子

Angular2 RC:在创建ControlGroup后,使用addControls方法添加了控件

我有一个添加不同的字段(我添加新的控件,因为只是使用*ngIf将它们从模板中隐藏起来,因此不会从表单中将它们排除,因此导致表单无效)基于select选项中的选定选项.我正在使用Angular2中的表单的addControl方法向可用表单添加新控件.控件正在正确添加,但我不知道为什么这些添加的控件的值在用户输入后没有更新.以下是我向表单添加新控件的方法:

signUpForm: ControlGroup;

constructor(private fb: FormBuilder) { }

ngOnInit(): void {
    this.signUpForm = this.fb.group({
        firstName: ["", Validators.required],
        lastName: ["", Validators.required],
        group: ["", Validators.required]
    });
}

modifyControls(selectedGroup): number {
    if (selectedGroup == 1) {
        if (this.signUpForm.contains("studentID")) {
            this.signUpForm.removeControl("studentID");
        }
        this.signUpForm.addControl("teacherCode", new Control("", Validators.required));//need some custome validations
        this.signUpForm.addControl("teacherID", new Control("", Validators.required));
        return 1;
    }
    else if (selectedGroup == 2) {
        if (this.signUpForm.contains("teacherCode")) {
            this.signUpForm.removeControl("teacherCode");
            this.signUpForm.removeControl("teacherID");
        }
        this.signUpForm.addControl("studentID", new Control("", Validators.required));
        return 2;
    }
}
Run Code Online (Sandbox Code Playgroud)

看起来角度不能识别那些新的领域.我认为它与AbstractControl有关,但文档缺乏这一点.以下是问题的快照,即动态添加的控件未被角度拾取. 在此输入图像描述

为了显示问题,我在下面的plunker中创建了一个简单的例子(请转到版本2来复制此问题).

https://plnkr.co/edit/RI4JL4Pnf2LrJ3TsxsSt?p=preview

我做错了什么以及如何使其适用于当前的设置?实现相同行为的其他选择有哪些?

谢谢您的帮助

解决方法:

modifyControls(selectedGroup) { …
Run Code Online (Sandbox Code Playgroud)

formbuilder angular2-forms angular

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

单击后,Angular2RC4-Primeng 菜单栏路由器链接不会转到我的路线

我正在为我的应用程序使用来自primeng 的菜单栏。我显示了菜单,但我无法使路由在我的应用程序中工作。我设置了特定链接的路由说“reports/89”,但是当我单击与链接对应的菜单时,它会尝试转到“localhost:3000/r/e/p/o/r/t/s/8/9” "这显然不存在。我检查了包含我的菜单的项目对象,并且 routerLink 正确指向“reports/89”。这里发生了什么以及为什么primeng在链接中的每个字符之间放置/。我的代码很简单:私人项目:MenuItem[] = []; 用项目、标签和路由器链接填充项目数组。

this.items = [
{
"label": "Lookup",
"routerLink": "/reports/79"
},
{
"label": "Reports",
"routerLink": "/reports/89",
"items": [
  {
    "label": "Lab Results",
    "routerLink": "/reports/3"
  },
  {
    "label": "test Results",
    "routerLink": "/reports/4"
  }
]
Run Code Online (Sandbox Code Playgroud)

所有菜单都正确显示,但我注意到由primeng 为菜单项构建的span 元素的href 设置为“#”。这可能是问题所在,但不知道为什么会这样设置,因为我提供了自己的 routerLinks。

我没有在我的组件中进行任何路由,我认为所有这些都将在 Primeng 中完成。

感谢您的帮助

menubar primeng angular

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

标签 统计

angular ×2

angular2-forms ×1

formbuilder ×1

menubar ×1

primeng ×1