gpt4 book ai didi

AngularJS Firebase 数据库通过复选框更新字段

转载 作者:行者123 更新时间:2023-12-04 07:50:48 25 4
gpt4 key购买 nike

我想更新显示 Firebase 数据库的表中的数据。

表中的每一行代表一个特定用户的数据。我的目标是能够更新用户数据的一个字段中的数据。在此示例中,我尝试根据复选框 ng-true-value="'admin'" ng-false-value="'user'" 更改用户 Angular 色。 .

如何获取我正在编辑/更新信息的行的用户 ID 并将其传递给更新函数?当前代码正在使用当前用户 ID。

我使用它更新用户信息的功能是:

$scope.updateRole= function () {

var updated_user_info= {
role: $scope.user.role

};
var myuser = firebase.auth().currentUser;//change this part?!
DatabaseRef.ref('users/' + myuser.uid).update(updated_user_info)
.then(function () {
console.log("update success");
}).catch(function (error) {
$scope.errMsg = true;
$scope.errorMessage = error.message;
});
}

html View :
<tr ng-repeat="obj in $data">   
<td data-title="'First Name'" filter="{ 'First Name': 'text' }" sortable="'firstName'">{{ obj.firstName }}</td>
<td data-title="'Last Name'" filter="{ 'Last Name': 'text' }" sortable="'lastName'">{{ obj.lastName }}</td>
<td data-title="'Role'" filter="{ 'Role': 'text' }" sortable="'role'">
<input type="checkbox" ng-model="user.role" ng-true-value="'admin'" ng-false-value="'user'" ng-click="updateRole()">
{{obj.role}}
</td>
</tr>

目前它只更新当前用户,并为所有用户维护一个检查值,但不更新,只更新当前用户本身。

最佳答案

如果我是你,我会使用 ng-change指令而不是 ng-click . ng-change指令在每次复选框值更改时触发。

HTML

<input type="checkbox" ng-model="user.role" ng-change="updateRole(user)" ng-true-value="'admin'" ng-false-value="'user'">

正如您在上面的 HTML 中看到的,我们可以将用户模型传递给我们的 updateRole 函数并从那里处理其余部分。

JS
$scope.updateRole= function (user) {
var updated_user_info= {
role: user.role
};

DatabaseRef.ref('users/' + user.uid).update(updated_user_info)
.then(function () {
console.log("update success");
}).catch(function (error) {
$scope.errMsg = true;
$scope.errorMessage = error.message;
});

}

如您所见,您的更新功能发生了一些变化。现在您可以获得 uid来自 user反对并继续。

关于AngularJS Firebase 数据库通过复选框更新字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40498486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com