【发布时间】:2016-09-25 21:49:15
【问题描述】:
我的表单上发生了奇怪的事情,或者我做的不对,让我通过展示我的代码向你解释一下。
我在我的组件中定义了一个表单对象
form = {};
每一行都有一个带有数据的按钮,当您单击它时,它会打开一个模态窗口,并将项目作为参数传递。
<a class="btn btn-warning" (click)="open(item)"><i class="glyphicon glyphicon-pencil"></i></a>
这是触发并打开模态窗口但还将项目对象分配给上面的表单对象的方法:
open = (item: any) => {
this.inventoryEditModal.open(); //Opens a modal window
this.form = item; // the assignment
}
item 对象在视图中可用,可以这样打印出来:
{{ form | json }} // i can see all item properties
模态窗口包含一个表单,用户将在其中编辑项目,所以基本上输入表单字段应该填充项目属性值,但由于某种原因,第三级未定义,我不明白为什么,让我告诉你二级截图
<input type="text" class="form-control" [(ngModel)]="form.alarmSystem" name="wireless">
第三层未定义:
<input type="text" class="form-control" [(ngModel)]="form.alarmSystem.wireless" name="wireless">
此问题仅发生在第三级“object.object.property”。我只显示一个输入字段,但表单包含超过 8 个字段,它们都有相同的问题。
不确定我在这里缺少什么,但从逻辑上讲它应该可以工作。你有没有看到这个问题在这里和那里发生或经历过你自己?
提前谢谢你。
【问题讨论】:
-
其实第二层是 undefined "cannot read property 'wireless of undefined" = alarmSystem is undefined。你也试过
console.log(form.alarmSystem)吗? -
是的,我已经尝试过了,所以基本上整个对象在我打印出来时都可以在视图中使用,而且警报系统也是如此。
标签: javascript angular typescript angular2-ngmodel