组件:
export class AccountComponent implements OnInit {
public error: any;
currentUser = {};
constructor(private afService: AF) {
afService.getCurrentUserInfo().then(currentUserDetails => {
this.currentUser = currentUserDetails;
});
}
updateUserEntry(fname, lname, phone, bio) {
this.afService.getCurrentUserInfo().then((user) => {
let details = [];
details.push(user);
console.log(details[0].userID);
this.afService.updateUserEntry(details[0].userID, fname, lname, phone, bio).then(() => {
console.log("Updated entry");
})
.catch((error) => {
this.error = error;
console.log("error");
});
});
}
ngOnInit() {
}
}
表单:
<form>
<dl class="form-group">
<dt><label>First Name</label></dt>
<dd><input [(ngModel)]="currentUser.firstName" name="fname" class="form-control" type="text"></dd>
</dl>
<dl class="form-group">
<dt><label>Last Name</label></dt>
<dd><input [(ngModel)]="currentUser.lastName" name="lname" class="form-control" type="text"></dd>
</dl>
<dl class="form-group">
<dt><label>Email</label></dt>
<dd><input [(ngModel)]="currentUser.email" name="email" class="form-control" type="email" disabled></dd>
</dl>
<dl class="form-group">
<dt><label>Mobile Phone</label></dt>
<dd><input [(ngModel)]="currentUser.phone" name="phone" class="form-control" type="text"></dd>
</dl>
<dl class="form-group">
<dt><label>Bio</label></dt>
<dd>
<textarea [(ngModel)]="currentUser.bio" name="bio" class="form-control"></textarea>
</dd>
</dl>
<div class="form-actions">
<button type="button" class="btn btn-primary" (click)="updateUserEntry(fname, lname, phone, bio)">Save changes</button>
</div>
</form>
该函数更新一个JSON记录。例如,它用“fname”ng model更新“firstName:”条目。问题是,除非用户修改输入的值,否则ngModel被读取为null,即使已经存在< code > value = " { { current user . first name } } " 的值。
如何设置 ngModel 以从实际输入的值=“”解释
其值?
您不需要使用不同的变量,如fname
,直接为ngModel传递currentUser.firstName
。
<input
type="text"
[(ngModel)]="currentUser.firstName"
name="fname"
class="form-control">
但是,如果我的理解是错误的,并且您想使用currentUser.firstName
初始化fname
,请在组件中执行此操作。
this.fname = currentUser.firstName
并在html中
<input
type="text"
[(ngModel)]="fname"
name="fname"
class="form-control">
在文本类型的情况下,不要同时使用 ngModel 和值,它们相互矛盾(检查下面的评论)。
完成代码段后更新
要使您当前的代码正常工作,请执行以下更改:
> < li>
将类型赋予< code>currentUser like
< code > public current user:any = { };
移除< code>updateUserEntry中的参数,但从< code>this.currentUser中获取值
this.afService.updateUserEntry(
details[0].userID,
this.currentUser.fname,
this.currentUser.lname,
this.currentUser.phone,
this.currentUser.bio)
更好的方法
但是我相信你把事情复杂化了。在我看来,除非你需要双向数据绑定,否则不要使用ngModel。请使用thoughtram中的FormGroup示例
我想通过Selenium设置日期值。 我正在处理这个页面
问题内容: 注意: 以下答案与评论反映了2009年旧版浏览器的状态。现在,您实际上可以在2017年使用JavaScript和dataTransfer或FileList对象动态/以编程方式设置文件输入元素的值。 有关详细信息和演示,请参见此问题的答案: 如何以编程方式设置文件输入值(即:拖放文件时)? 如何设置此值? 问题答案: 由于安全原因,您不能。 想像: 您不希望所访问的网站能够做到这一点,对
问题内容: 注意: 以下答案与评论反映了2009年旧版浏览器的状态。现在,您实际上可以在2017年使用JavaScript和dataTransfer或FileList对象动态/以编程方式设置文件输入元素的值。 如何设置此值? 问题答案: 由于安全原因,您不能。 想像: 您不希望所访问的网站能够做到这一点,对吗?
假设我在功能组件中创建了一个变量,如下所示: 如何根据用户输入的内容更改此值。我的想法是: 但是它不知道什么是值,我怎么能得到值到我的quizName变量?
大家好,我有代码主和tictactoe类 这里是main类的示例。在这段代码中,我输入了类似字符串号的内容 这是为我的tictactoe程序班准备的。如果我运行这个代码,我只有3x3tictactoe程序,所以我想用我的输入修改其中一个代码,这样我的tictactoe将输入x输入 我的问题是我想改变这个领域 成为 公共静态最终int行=输入;//行按COLS单元格public static fin
问题内容: 但它不起作用,如何设置默认值? 问题答案: 日期应采用格式。一位数的日期和月份应填充0。一月是01。 从文档中: 代表日期的字符串。 值:RFC3339中定义的有效完整日期,另外具有年份部分为四位或更多位数字表示大于0的数字的资格。 您的代码应更改为: