Jam*_*esG 2 angularjs angularjs-ng-repeat ng-class
我的应用程序中有一个类似于系统的Facebook风格,我想在用户单击时使“赞”按钮更改颜色。这可以通过添加.active类来完成,但是我无法弄清楚如何仅在ng-repeat中获得一个具有thr活动类的项。
这是我的观点:
<div class="list card" ng-repeat="data in array">
<div>
<a ng-click="favourite(data.ID)" class="tab-item" >
<i ng-class="{'active': favourited}" class="icon ion-thumbsup" ></i>
Favourite
</a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
ng-click将请求发送到服务器以存储在数据库中,并且一旦请求成功,则当控制器中的“收藏夹”变量更改为true时,ng-class将该类更改为active:
$scope.favourite = function(dataID){
$favourite.favourite(dataID).then(function(data){
$scope.favourited = true;
});
}
Run Code Online (Sandbox Code Playgroud)
这会使所有收藏夹按钮都变为活动状态,因此我只是不知道如何仅使当前按钮处于活动状态。
提前致谢
这是因为您使用的是$ scope.favourited,因为所有ng-repeats仅此变量的一个副本,因此对所有ng-repeats都进行更新。因此,请尝试根据您的需求对单个记录使用一些变量,因为您只想一次将单个记录标记为收藏。
更换
ng-class="{'active': favourited}" 与 ng-class="{'active': data.favourited}"
和
$scope.favourited = true; 与 data.favourited = true;
| 归档时间: |
|
| 查看次数: |
3022 次 |
| 最近记录: |