gpt4 book ai didi

javascript - Angularjs ng-click表达式在选择超过4个时发出警报

转载 作者:太空宇宙 更新时间:2023-11-04 09:16:02 25 4
gpt4 key购买 nike

我有一个很大的 angularjs 应用程序...我试图让 4 个 div 一次可选,否则最终用户应该收到一条警告,说您不能选择第 5 个...

这是我到目前为止到达的地方,

HTML

<body ng-app="ap" ng-controller="con">
<table id="myTable">
<tbody>
<tr data-ng-repeat="field in fieldList">
<td>
<span>{{field.name}}</span>
</td>
<td style="width: 15px;">
<div ng-click="$('.tick').length >= 4 ? (!selected) : (selected = !selected)" ng-class="{'notick' : !selected, 'tick': selected}"></div>
</td>
</tr>
</tbody>

</table>
</body>

JS

var app = angular.module("ap", []);

app.controller("con", function($scope) {
$scope.fieldList = [{
id: 0,
name: "Number 1"
}, {
id: 1,
name: "Number 2"
}, {
id: 2,
name: "Number 3"
}, {
id: 3,
name: "Number 4"
}, {
id: 4,
name: "Number 5"
}];
});

CSS

.tick {
color: red;
}

.notick {
color: grey;
}

真正的代码是不同的,但我试图让它在这里尽可能地工作,用户在任何给定时间只能选择 4 个 div,否则警告应该阻止它们,

JSFiddle - http://jsfiddle.net/baa2G/110/

最佳答案

您可以使用以下 Angular 语法实现此目的,这应该优于在 Angular 中混合使用 Jquery 语法。

您的 html 更改将是

 <tr data-ng-repeat="field in fieldList">
<td>
<div ng-click="checkCount($index)" ng-class="{'tick' : field.clicked}">{{field.name}}</div>
</td>
</tr>

P.S:我保留了单个 td 元素以将事件放在 wnere 文本显示上。

在你的 Controller 中。

$scope.checkCount = function(index) {
if ($scope.fieldList[index].clicked !== true) {
if ($scope.clickedElement === 4) {
alert("Only 4 div can be selected.")
} else {
$scope.fieldList[index].clicked = true;
$scope.clickedElement++;
}
}
else
{
$scope.fieldList[index].clicked = false;
$scope.clickedElement--;
}
}

fiddle :http://jsfiddle.net/hudrozxd/1/

关于javascript - Angularjs ng-click表达式在选择超过4个时发出警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41767245/

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