代码之家  ›  专栏  ›  技术社区  ›  Ralf

应用于所有表行的引导按钮更改

  •  0
  • Ralf  · 技术社区  · 9 年前

    我有一个foreach循环,它将数据显示到一个表中,每个表上都有一个签入按钮。每次我点击这个按钮,它们都会改变?有什么方法可以在不删除foreach循环的情况下阻止这种情况?

    @foreach (var item in Model)
        {
            <tr>
                <td>@Html.DisplayFor(modelItem => item._Name)</td>
                <td>@Html.DisplayFor(modelItem => item.DateOfBirth)</td>
                <td>@Html.DisplayFor(modelItem => item.JobTitle)</td>
                <td>@Html.DisplayFor(modelItem => item.Company)</td>
                <td>@Html.DisplayFor(modelItem => item.EventId)</td>
                <td class="text-center">
                    <button class="btn btn-danger btn-sm" ng-class="change()" ng-click="toggle = !toggle">{{toggleText}}</button>
    
    
                    @Html.ActionLink("Edit", "EditAttendee", new {id = item.Id}) |
                    @Html.ActionLink("Delete", "Delete", new {id = item.Id})
                </td>
            </tr>
        }
    
    
    $scope.change = function() {
                    if($scope.toggleText == "Checked-in"){
                        return "btn btn-success btn-sm";
                    }
                    else{
                        return "btn btn-danger btn-sm";
                    }
                };
    

    1 回复  |  直到 9 年前
        1
  •  1
  •   Maher    9 年前

    实际上 change() 已绑定到 ng-class 当您的页面运行时。

    ng-click toggle 参数, 这意味着 您的 foreach 有相同的按钮,您必须将其更改为 item.toggle = !item.toggle .

    这个 item.toggle item 切换 param,所以当你点击那个按钮时,你只需改变它,而不是全部。

    在上使用函数是错误的 ng类 ng-class="item.toggle ? 'btn-primary':'btn-danger'" 这样好多了。