2 个输入字段上的单向数据绑定
One way data binding on 2 input fields
在我的注册表上,我有名字、姓氏和显示名称字段。当名字更新时,我希望该值反映在显示名称字段中(如果该字段还没有值)。
我已将更新设置为在模糊时进行,当我直接检查元素的显示名称时,我看到值属性设置为名字值。但是,这似乎并没有反映在屏幕或模型中。我敢肯定这是因为该字段正在脱离user.displayname
(最初是空的)。
<div ng-app="myApp">
<form ng-controller="RegisterCtrl">
<input type="text" ng-model="user.firstname" placeholder="Firstname" ng-model-options="{updateOn: 'blur'}"/>
<input type="text" ng-model="user.lastname" placeholder="Lastname" />
<input type="text" ng-model="user.displayname" placeholder="Display" value="{{user.firstname}}"/>
</form>
</div>
<script>
var myApp = angular.module("myApp", []);
myApp.controller("RegisterCtrl", ["$scope" ,function ($scope) {
$scope.user = {};
}]);
</script>
JSFiddle: http://jsfiddle.net/mbqs7xcj/
我错过了什么或做错了什么?谢谢。
编辑
我想出的一个解决方案是$watch
更改firstname
字段,然后在该值尚不存在时相应地设置displayname
。但是,我不认为这是"解决方案",因为我相信有一种更有效的方法可以做到这一点。
<script>
var myApp = angular.module("myApp", []);
myApp.controller("RegisterCtrl", ["$scope", function ($scope) {
$scope.user = {
firstname: "",
lastname: "",
displayname: "",
email: "",
password: ""
};
// Set the firstname as the display name if it's empty
$scope.$watch("user.firstname", function () {
if ($scope.user.displayname.length === 0) {
$scope.user.displayname = $scope.user.firstname;
}
});
}]);
</script>
http://jsfiddle.net/mbqs7xcj/7/
删除input
显示中的ng-model
指令
<input type="text" placeholder="Display" value="{{user.firstname}}"/>
这是小提琴
如果您使用的是ng-model
角度尝试查找该模型名称的值,因此 TextBox 不会更新,因为该模型名称没有值user.displayname
。
另一种选择是在第一次输入时触发并观察鼠标事件。
<input type="text" ng-model="user.firstname" ng-mouseleave="checkDisplayName($event)" />
http://jsfiddle.net/darul75/mbqs7xcj/9/
相关文章:
- 在VanillaJS中模拟模型双向数据绑定
- Telerik rad组合框多列数据绑定
- 数据绑定:'系统Char'不包含名为'xxxxx'
- OnsenUI AngularJS数据绑定无法正常工作
- Ionic-item在导航栏中进行双向数据绑定
- 数据绑定在带有输入标签的 AngularJS 中不起作用
- Angular2:如何在输入元素上动态设置数据绑定变量
- AngularJs 双向数据绑定不适用于自定义指令输入元素
- 角度数据绑定 - 输入类型=“数字”
- 2 个输入字段上的单向数据绑定
- 我的数据绑定有效,但我的输入ng模型是't更新时更新
- 输入类型text和email在angular指令中的行为不同(双向数据绑定)
- 如何在React中进行两天的数据绑定,当输入值A更新时B更新,反之亦然,同时保留以前转换的历史记录
- 如何使用react进行双向数据绑定,使输入值A在B更新时更新,反之亦然
- js输入类型日期数据绑定在谷歌Chrome
- AngularJS:带数字输入的双向数据绑定
- Emberjs:数字输入之间的双向数据绑定
- 有没有可能在Vue.js中没有输入元素的双向数据绑定?
- 使用JQuery设置输入值后,数据绑定不会更新
- 如何使用AngularJS将html输入标记中的数据绑定到javascript对象