我是Angular2 / Typescript的新手,因为我来自Java世界,我决定直接学习Typescript和Angular2。
我想将大部分逻辑留在服务器上,因此我不需要在客户端上进行复杂的验证管理。所以我想要的是用户填写表单,并将所有字段发布/放入REST服务。目标是让客户端尽可能轻松。
我有一张表格:
<form role="form" (ngSubmit)="onSubmit()" #ArbeitstagForm="ngForm">
和其中的一个字段,一些日期选择器:类似这样:
<input type="text" class="form-control pull-right" id="datepicker" [(ngModel)]="model.datum">
当我提交表格时,我称之为此功能:
model = new Arbeitstag();
onSubmit(form:any) {
alert(JSON.stringify(this.model));return false;
}
这样我就会将输入的数据提醒为JSON,我将其发送到REST服务。它实际上很棒,但只有当我在字段中输入内容时,当我有一个默认值,或者我使用datepicker设置字段时,模型对象值将保持为空。
我发现了字段的脏设置,默认情况下是假的,当我输入内容时会变为真实,这也是我在查看firebug时看到的内容,但这绝对不是我想实现的
有没有办法在Angular2中将表单中的所有字段设置为脏?我找到了许多Angular.js 1的例子,但没有找到Angular2 / Typescript。
答案 0 :(得分:2)
Control
有一个markAsDirty()
(和markAsTouched()
)方法
<input #datePicker="ngForm" type="text" class="form-control pull-right" id="datepicker" [(ngModel)]="model.datum">
<button (click)="datePicker.control.markAsDirty()">update dirty status</button>
答案 1 :(得分:1)
我通常使用 def correct_login(text):
stored_user = user_entry.get()
if stored_user == "admin" or "ADMIN":
stored_pass = pass_entry.get()
if stored_pass == "password":
user_entry.delete(0, 'end')
pass_entry.delete(0, 'end')
pass_win.destroy()
else:
user_entry.delete(0, 'end')
pass_entry.delete(0, 'end')
mb.showwarning("Incorrect Credentials", "The username or password you have entered are incorrect.")
else:
user_entry.delete(0, 'end')
pass_entry.delete(0, 'end')
mb.showwarning("Incorrect Credentials", "The username or password you have entered are incorrect.")
pass_win.bind('<Return>',correct_login)
user_label = tk.Label(pass_win, text="Username", font=("Helvetica", 16))
user_entry = tk.Entry(pass_win)
pass_label = tk.Label(pass_win, text="Password", font=("Helvetica", 16))
pass_entry = tk.Entry(pass_win, show="*")
user_label.grid(row=1, column=0, sticky="E", padx=20, pady=10)
user_entry.grid(row=1, column=1, sticky="W", padx=20, pady=10)
pass_label.grid(row=2, column=0, sticky="E", padx=20, pady=10)
pass_entry.grid(row=2, column=1, sticky="W", padx=20, pady=10)
user_entry.focus_force()
submit_button = tk.Button(pass_win, text="Submit", command=correct_login)
submit_button.grid(row=3, column=0, sticky=("N", "S", "E", "W"), padx=20, columnspan=2)
quit_button = tk.Button(pass_win, text="Quit", command=pass_win.destroy)
quit_button.grid(row=4, column=0, sticky=("N", "S", "E", "W"), padx=20, columnspan=2)
user_entry.delete(0)
user_entry.insert(0, "")
pass_entry.delete(0)
pass_entry.insert(0, "")
获取对组件中表单的引用。有了这个参考,我可以在需要时标记为脏或触摸。像这样:
ViewChild
- )