【问题标题】:How to show a particular div based on radio box checked in angularjs如何根据在angularjs中选中的单选框显示特定的div
【发布时间】:2018-06-21 02:18:55
【问题描述】:

我有单选按钮和带有 ng 重复的“删除”文本,这里基于选中的单选按钮我需要显示删除文本,每当我点击单选按钮时,“删除”文本应该显示,当我点击下一个单选时再次显示按钮“删除”应隐藏上一个未选中的单选按钮,并应显示下一个选中的单选按钮。 对我来说它的工作,但点击下一个单选按钮之前的“删除”文本没有隐藏。代码如下。谁能帮助我,我是 angularjs 的新手。

var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
  $scope.div_ = [];

  $scope.items = [{
      id: 1,
      title: "first item"
    },
    {
      id: 2,
      title: "second item",
    },
    {
      id: 3,
      title: "third item",
    }
  ];
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.11/angular.min.js"></script>
<script src="app.js"></script>
<div ng-app="plunker" ng-controller="MainCtrl">
  <ul ng-repeat="item in items">
    <li style="color:red;display:inline" ng-click="item=1"><input type="radio" name="samename" value={{$index}}></li>
    <li style="color:blue;display:inline;margin-left:100px;" name="samenaame" ng-show="item==1" ng-show="item==1">delete</li>
  </ul>
</div>

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    我尝试对您的主代码进行最少的更改,但我认为这是有缺陷的。

    不确定你想用你拥有的多个 ul 来实现什么,所以我删除了它们。

    您可以像本例中那样使用 ng-repeat-start 和 -end,也许这就是您想要的。

    此代码只会显示一个额外的“li”,具体取决于您选择的 ID。 (使用“帮助”属性)

    var app = angular.module('plunker', []);
        app.controller('MainCtrl', function($scope) {
          $scope.div_ = [];
          $scope.selectedItem;//or nothing
          
          $scope.items = [{
              id: 1,
              title: "first item"
            },
            {
              id: 2,
              title: "second item",
            },
            {
              id: 3,
              title: "third item",
            }
          ];
          
          $scope.handleClick = function (item) {
            $scope.selectedItem = item;
          }
        });
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.11/angular.min.js"></script>
        <div ng-app="plunker" ng-controller="MainCtrl">
          <ul>
            <li ng-repeat-start="item in items" style="color:red;display:inline" ng-click="handleClick(item)">#Item={{item.id}}
    <input type="radio" name="samename" value={{$index}}>
    </li>
            <li ng-repeat-end style="color:blue;display:inline;margin-left:100px;" ng-show="selectedItem==item">delete #{{item.id}}</li>
          </ul>
          
        </div>

    【讨论】:

    • 它工作正常,但在我的 $scope.items 内的 json 中可能不包含 id,我只是举例说明了,在这种情况下我们需要怎么做
    • 您可以简单地删除ID,然后您可以使用对象本身。 @Aprasad
    • @Aprasad 我看到您没有将任何问题标记为答案,也许您不知道该怎么做?答案旁边有一个“V”标记。强烈建议标记对您的问题有帮助的答案,以激励开发人员提供帮助。
    猜你喜欢
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多