gpt4 book ai didi

javascript - ng-class 仅适用于 ng-repeat angularjs 中的当前范围

转载 作者:行者123 更新时间:2023-11-28 08:33:50 26 4
gpt4 key购买 nike

我在使用 AngularJS 的 ng-class 部分时遇到了问题。

我唯一想到的就是在成功或错误后将类添加到 ng-click 开启的所有按钮中。

但我只想添加/更改当前单击元素的类。这在某种程度上是可能的吗?

<section ng-repeat="user in users">

<button class="btn" ng-click="myFunction(user);" ng-class="{invalid:errors,done:success}"></button>

</section>

<script>
function UsersController($scope, $http) {
$http.get('/users.json').success(function(users) {
$scope.users = users;

$scope.errors = false;
$scope.success = false;
});

$scope.myFunction = function(user) {
$http.post('/myUrl/'+user.id, student)
.success(function(data, status, headers, config) {
// $scope.success = true;
user.success = true;
})
.error(function(data, status, headers, config) {
// $scope.errors = true;
user.errors = true;
});
}
}
</script>

我想要的只是当前范围,但这不起作用。

除了传递 ng-class 值之外,我的函数确实有效。

最佳答案

另一个解决方案:

<section ng-repeat="user in users">
<button class="btn" ng-click="myFunction(user)"
ng-class="{invalid: isInvalid(user), done: isSuccess(user)}">{{user.name}}</button>
</section>

因此,您创建 isInvalidisSuccess 函数并传入当前的 user 对象:

$scope.isSuccess = function(user) {
return user === $scope.state.success;
};

$scope.isInvalid = function(user) {
return user === $scope.state.errors;
};

这两个函数可以判断当前用户是无效还是成功。例如,当出现错误时,您可以这样设置:

$scope.state = {
success: false,
errors: user
};

演示:http://plnkr.co/edit/RDJy9VsRkhAO0cFnb6AV?p=preview

关于javascript - ng-class 仅适用于 ng-repeat angularjs 中的当前范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21488149/

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