【发布时间】:2026-02-07 12:50:01
【问题描述】:
我使用 angularjs 和 bootstrap(我是 angular 的初学者)。我的应用程序中有很多list-group,如果用户尚未单击该项目,我需要在每个badge 上显示。一旦第一次点击,徽章就会被移除(即使用户刷新页面,它也会再次出现)。
由于它在应用程序中确实经常出现,我不知道如何正确执行此操作... 我不想使用大量的布尔或会话存储来检查用户是否有点击。你觉得用 angular 来做这件事的好方法吗?
仅供参考,这是我现在的 HTML:
<div class="list-group">
<a ng-repeat="item in itemList"
ng-click="select(item)"
ng-class="{active: selected === item}"
class="list-group-item">
{{item.name}} <span class="badge">{{item.badge}}</span>
</a>
</div>
还有我的控制器:
app.controller('myCtrl', ['$scope',
function ($scope) {
$scope.itemList = [{
name: 'Lorem',
badge: 'New'
}, {
name: 'Ipsum',
badge: 'New'
}];
$scope.select = function (item) {
$scope.selected = item;
};
}
]);
属性 badge 在第一次点击时应该为空,即使用户离开应用程序也保持为空。
【问题讨论】:
-
当元素被点击时,你到底想要什么?清除跨度班徽章?删除 span.badge 元素?
-
为什么要在客户端管理所有列表项?如果您受到这种限制,我建议您依赖浏览器本地存储...
-
@borjagómez 我只想不为用户显示徽章。我用
badge: ''进行了测试,它可以工作。但我不知道如何自动化它。 -
@deostroll 这是一些“业务需求”,大部分数据应该在客户端进行管理。我是否应该使用“状态”来管理每个项目以了解它是否已经被访问过?
标签: javascript angularjs twitter-bootstrap badge