如何在ng-repeat中切换特定的div元素?

时间:2016-12-12 07:22:40

标签: javascript html css angularjs

我有产品清单,如果我点击一个产品需要将其添加到数据库中,如果我点击相同的产品就应该从数据库中删除它,我在wishlistFlag切换ng-click }。它应该在一个div元素上正常,对于第二个div元素它正在反向第一个div元素,我的意思是在第一个产品被添加的情况下然后如果我点击第二个产品它必须被添加但是它正在删除第一个产品。

 <div class="hmpal-prprt-post-wdgt hmpal-prprt-wishlist">
    <a href="">
        <span class="prprt-icon"><i class="fa fa-heart" aria-hidden="true" 
            ng-click="WishlistAdd($index,project.propertyId)"></i></span>
        <span>Wishlist</span>
    </a>
 </div>

内部的控制器代码就在这里,

a.WishlistAdd = function (index,propertyId) {

    a.wishlistFlag = !a.wishlistFlag;

    var data = {
        wishlistFlag:a.wishlistFlag,
        propertyId:propertyId
    };

    e.createWishLists(data).then(function (result) {
        alert("sucesss");
        alert(JSON.stringify(result));
    }, function (error) {
       alert("error");
       alert(JSON.stringify(error));
    });
}

如何为不同的产品实施切换wishlistFlag

3 个答案:

答案 0 :(得分:1)

由于您最多只想在愿望清单中选择一种产品,而不是使用public void execute() throws Exception { String value1 = getRequest().getParameter("value1"); ... } 标记,因此您可以使用所选的产品ID(如果我是正确的话,在您的代码中称为boolean) 。如果没有选择产品,则控制器中定义的propertyId变量为selectedProductId,如果没有,则为产品ID。

切换是通过检查当前所选的id是否等于所单击的id来完成的。

我认为

  1. 当发送数据中null时,您要添加 由wishListFlag === true标识的产品,否则,删除 来自数据库的产品。
  2. 添加产品时,服务器端 实际上,如果存在现有产品,则替换所选产品。
  3. propertyId

答案 1 :(得分:0)

您可以使用$ index为每个wishList分配一个标志。在这里,您可以将代码编写为..

a.wishListFlag[index]

答案 2 :(得分:0)

在保存到数据库之前维护一个添加的propertyIds数组,检查id是否在数组中,如果这样从数据库和数组中删除,则从数据库和数组中删除。

<img src='@Url.Action("CarregarLogoEmpresa", "Image", new {CodigoEmpresaLogada = SecurityManager.Instance.Session.IdEmpresa})' />