首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将一个简单的select/unselect升级到我可以调用的适当数组中

将一个简单的select/unselect升级到我可以调用的适当数组中
EN

Stack Overflow用户
提问于 2018-05-01 06:18:00
回答 1查看 10关注 0票数 0

我有一个ng-repeat,它显示了用户可以“选择”的项目列表,并且我使用以下代码(简化后的示例)进行选择过程

代码语言:javascript
复制
<div class="panel" ng-class="{'titleSelected': titleSelected[$index]}" ng-repeat="item in listofitems">
<h1>{{item.name}}</h1>
<button class="btn btn-success" ng-click="titleSelected[$index] = !titleSelected[$index]">
<span ng-hide="titleSelected[$index]">Add to Buy List</span>
<span ng-show="titleSelected[$index]">Remove from Buy List</span>
</button>
</div>

现在,这个方法工作得很好(我也使用item.id而不是$index来跟踪它。我单击了一个项目,多亏了ng-class,背景改变了颜色,按钮动态地变成了一个删除按钮。

然而,我期望titleSelected是一个存储信息的数组,但我显然错了。我真正需要的是一个在单击时存储/删除item.id的活动数组,而我在这方面的做法是完全错误的。

另外,当我使用过滤器(代码中没有显示)时,如果选择了任何项目,然后通过过滤器将其隐藏。并将其带回,则它将失去其“选定”状态。

$index和item.id都是这种情况

我怀疑与推送和拼接的小功能是必需的,但我也仍然需要添加和删除的简单功能以及。并与实际选择的内容完全同步

感谢您的任何指点

编辑1:只需添加

代码语言:javascript
复制
$scope.titleSelected = [];

进入我的控制器,使用item.id而不是$index,我的应用程序现在是1)记住过滤器更改之间的选定项,并创建一个我可以调用的数组。但是,该数组包含(在第一次选择时)每一项的条目。

所以我有503个条目,第一次单击时数组长度跳到912 (不知道这个数字是从哪里来的)。大多数都是空的,但是如果我用id=4点击项目,那么第四个条目就变成了真

代码语言:javascript
复制
null,null,null,true,null...
EN

回答 1

Stack Overflow用户

发布于 2018-05-01 23:48:22

完成了绑定到ng-click的几个函数

代码语言:javascript
复制
$scope.basket=[];

$scope.addToBasket = function(item) {
    $scope.basket.push(item);
};

$scope.removeFromBasket = function(item) {
    var index = $scope.basket.indexOf(item);
    if (index > -1) {
        $scope.basket.splice(index, 1);
    }
};

在HTML中

代码语言:javascript
复制
<button ng-hide="titleSelected[item.id]" class="btn btn-success" 
ng-click="addToBasket(item.id);titleSelected[item.id] = !titleSelected[item.id]">
          Add to Buy List
        </button>

<button ng-show="titleSelected[item.id]" class="btn btn-success" 
ng-click="removeFromBasket(item.id);titleSelected[item.id] = !titleSelected[item.id]">
              Remove from Buy List
            </button>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50108963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档