Javascript 2个输入字段上的单向数据绑定
在我的注册表上,我有名字、姓氏和显示名字段。更新firstname时,我希望该值反映在displayname字段中(如果该字段还没有值) 我已经将更新设置为在模糊时发生,当我直接检查元素的displayname时,我看到value属性设置为firstname值。然而,这并没有反映在屏幕上或模型中。我确信这是因为该字段在Javascript 2个输入字段上的单向数据绑定,javascript,angularjs,Javascript,Angularjs,在我的注册表上,我有名字、姓氏和显示名字段。更新firstname时,我希望该值反映在displayname字段中(如果该字段还没有值) 我已经将更新设置为在模糊时发生,当我直接检查元素的displayname时,我看到value属性设置为firstname值。然而,这并没有反映在屏幕上或模型中。我确信这是因为该字段在user.displayname(最初为空)中消失了 在输入显示中删除ng型号指令 <input type="text" placeholder="Display" va
user.displayname
(最初为空)中消失了
在
输入
显示中删除ng型号
指令
<input type="text" placeholder="Display" value="{{user.firstname}}"/>
这是你的电话号码
如果您使用的是
ng model
angular,请尝试查找该型号名称的值,因此文本框不会更新,因为该型号名称用户没有值。displayname
另一种替代方法是在第一次输入时触发并观察鼠标事件
<input type="text" ng-model="user.firstname" ng-mouseleave="checkDisplayName($event)" />
这确实会更新它。但是,我希望
displayname
成为模型的一部分。当用户进入表单时,在填写firstname
字段时,我希望将该值设置为displayname
。当然,如果用户不希望显示名成为自己的名字,可以更改显示名。同样,如果displayname
已经有一个值,对firstname
的任何更改都不应该覆盖它。感谢您的回复,但是我不知道触发鼠标事件是否准确,特别是因为表单通常是通过键盘(tab
)导航的。至于到目前为止我遇到的问题,$watch
似乎是我目前更好的解决方案。
<input type="text" placeholder="Display" value="{{user.firstname}}"/>
<input type="text" ng-model="user.firstname" ng-mouseleave="checkDisplayName($event)" />