Angular 和 Firebase 中的 3 种方式绑定导致输入框滞后
3 Way Binding in Angular & Firebase causing lag in input boxes
我正在将用户配置文件数据绑定到这样的变量:
// Profile Management
var user = firebase.child('users').child(userID);
$firebaseObject(user).$bindTo($scope, 'user');
这里是 HTML:
<div ng-show="firebaseUser">
<h1>Your Profile</h1>
<div class="contentContainer">
<div class="profilePicture">
<img src="images/noProfile.png">
</div>
<div class="personalInfo">
<input type="text" ng-model="user.Name" ng-change="user.$save()" type="text"
label="Name" placeholder="Your Name.." name="userName">
<input type="text" ng-model="user.Phone" ng-change="user.$save()" type="text"
label="Phone" placeholder="Your Phone #.." name="userPhone">
<label>Email</label>
{{firebaseUser.password.email}}
</div>
</div>
</div>
它工作正常,当我输入配置文件时,它会自动更新 Firebase 数据库,但是存在严重的滞后,如果您输入速度太快,就会非常明显地跳过很多单词,这种情况发生得太多了-可用。
我做错了什么?
用户这个。 ng-model-options="{debounce: {'default': 500} }
要触发的范围周期将延迟500ms。您还可以调整它以适应应用程序的使用。加油!
<input type="text" ng-model="user.Name" ng-change="user.$save()" type="text"
ng-model-options="{debounce: {'default': 500} }"
label="Name" placeholder="Your Name.." name="userName">
<input type="text" ng-model="user.Phone" ng-change="user.$save()" type="text"
ng-model-options="{debounce: {'default': 500} }"
label="Phone" placeholder="Your Phone #.." name="userPhone">
我正在将用户配置文件数据绑定到这样的变量:
// Profile Management
var user = firebase.child('users').child(userID);
$firebaseObject(user).$bindTo($scope, 'user');
这里是 HTML:
<div ng-show="firebaseUser">
<h1>Your Profile</h1>
<div class="contentContainer">
<div class="profilePicture">
<img src="images/noProfile.png">
</div>
<div class="personalInfo">
<input type="text" ng-model="user.Name" ng-change="user.$save()" type="text"
label="Name" placeholder="Your Name.." name="userName">
<input type="text" ng-model="user.Phone" ng-change="user.$save()" type="text"
label="Phone" placeholder="Your Phone #.." name="userPhone">
<label>Email</label>
{{firebaseUser.password.email}}
</div>
</div>
</div>
它工作正常,当我输入配置文件时,它会自动更新 Firebase 数据库,但是存在严重的滞后,如果您输入速度太快,就会非常明显地跳过很多单词,这种情况发生得太多了-可用。
我做错了什么?
用户这个。 ng-model-options="{debounce: {'default': 500} }
要触发的范围周期将延迟500ms。您还可以调整它以适应应用程序的使用。加油!
<input type="text" ng-model="user.Name" ng-change="user.$save()" type="text"
ng-model-options="{debounce: {'default': 500} }"
label="Name" placeholder="Your Name.." name="userName">
<input type="text" ng-model="user.Phone" ng-change="user.$save()" type="text"
ng-model-options="{debounce: {'default': 500} }"
label="Phone" placeholder="Your Phone #.." name="userPhone">