我将表单的值添加到数组中,然后显示在控制台中。Angular 2的值显示在控制台中,但是当我想在模板中显示角度值时未定义
这是我的提交按钮脚本:
onSubmit(myForm){
console.log(this.myForm.value.name);
this.item = [this.myForm.value.name, this.myForm.value.amount];
this.sls.addItem(this.item);
console.log(this.item);
}
当我点击提交,我可以正确地看到该项目的控制台,但是当我想在屏幕上添加我得到了一个空白格。
下面是HTML页面:
<div class="row">
<div class="col-xs-10">
<rb-shopping-list-add></rb-shopping-list-add>
<hr>
<ul class="list-group">
<a class="list-group-item" style="cursor: pointer" *ngFor="let item of items">{{items.name}} | ({{items.amount}})</a>
</ul>
</div>
</div>
在<ul>
什么也看不见了。
下面是<rb-shopping-list>
模板,我完全打字稿脚本:
export class ShoppingListAddComponent implements OnInit {
isAdd:boolean=true;
public item;
myForm: FormGroup;
constructor(private sls:ShoppingListService, formBuilder: FormBuilder) {
this.myForm = formBuilder.group({
'name':['', Validators.required],
'amount': ['', Validators.required]
});
}
ngOnInit() {
}
onSubmit(myForm){
console.log(this.myForm.value.name);
this.item = [this.myForm.value.name, this.myForm.value.amount];
this.sls.addItem(this.item);
console.log(this.item);
}
}
编辑
的ShoppingServiceList脚本:
import { Ingredient } from "../shared";
export class ShoppingListService {
private items: Ingredient[] = [];
constructor() {}
getItems() {
return this.items;
}
addItems(items: Ingredient[]) {
Array.prototype.push.apply(this.items, items);
}
addItem(item: Ingredient){
this.items.push(item)
}
}
您误解了ngFor语法更改为* ngFor =“让项目条目”> {{items.name}} | ({{items.amount}}) –
您需要遍历ShoppingListService中定义的集合。与此行相同的集合 - > this.sls.addItem(this.item)。发布您的ShoppingListService代码 – Riv
我通过添加ShoppingListService脚本更新了代码人。 – droidnation