我正在 angular2 中创建我的第一个应用程序,并且在使用 formBuilder 处理我的第一个实体更新表单时面临两难境地。我制作了一个工作表格,但仍然不确定它是否符合最佳实践。
我的对象来自 mongoDb 集合。具有两个简单文本属性的对象费用。
这就是我在控制器中所做的。
import {Component, View} from 'angular2/core';
import {RouteParams} from 'angular2/router';
import {Expenses} from 'collections/expenses';
import {RouterLink} from 'angular2/router';
import {Router} from 'angular2/router';
import {FormBuilder, Control, ControlGroup, Validators} from 'angular2/common';
@Component({
selector: 'expense-details'
})
@View({
templateUrl: '/client/expense-details/expense-details.html',
directives: [RouterLink]
})
export class ExpenseDetails {
expenseForm:ControlGroup;
expenseId;
constructor(params: RouteParams, private router: Router) {
this.expenseId= params.get('expenseId');
var expense = Expenses.findOne(this.expenseId);
var fb = new FormBuilder();
this.expenseForm = fb.group({
label:[expense.label, Validators.required],
description:[expense.description]
})
}
saveExpense(expense){
console.log(this.expenseForm.valid);
console.log(expense);
if(this.expenseForm.valid){
Expenses.update(this.expenseId, {
$set:{
label:expense.label,
description:expense.description
}
})
this.router.navigate(['ExpensesList']);
}
}
}
这是正确的行为吗?