angularjs - 删除基于 Angular js 中的按钮单击的选择选项

标签 angularjs

在我的应用程序中,我有一个选择 html,它具有以下选项
“添加”、“删除”、“复制”、“成员复制”

上面的下拉页面对于添加和编辑屏幕都是通用的。到目前为止,如果我们来自任何添加单击或编辑单击下拉菜单,则具有所有选项。 (注意:加载页面本身时下拉绑定(bind)。我们将根据点击显示/隐藏)

根据新要求,我需要删除除“添加”之外的所有其他选项,此外单击并在编辑单击中删除“添加”选项。

选择html:

<select name="ReasonID" required ng-model="member.ReasonID" class="form-control" ng-options="reason.ID as reason.Description for reason in reasons |orderBy: reason.Description"></select>

JS
$scope.manageMember = function (member) {
  $scope.showGrid = false; 
  $scope.showForm = true;
  reset();
  $scope.memberTemp = member;
  angular.extend($scope.member, member); };

如果您需要更多详细信息,请告诉我。

最佳答案

更新:

这里是完整的示例代码和带有虚拟数据的工作演示。

HTML

<div ng-app>
  <h2>Todo</h2>
  <div ng-controller="TodoCtrl">
    <select name="ReasonID" required ng-model="member.ReasonID" class="form-control" ng-options="reason.ID as reason.Description for reason in reasons |orderBy: reason.Description"></select>
    <br/>
   <input type="button" ng-click="manageMember(undefined)" value="add"/>
    <input type="button" ng-click="manageMember('bla bla bla')" value="edit"/>
  </div>
</div>

JS
function TodoCtrl($scope) {
  $scope.reasons = [{ID:1,Description :"Addition"},  {ID:2,Description :"Deletion"},{ID:3,Description :"Duplicate"},{ID:4,Description :"Member Duplicate"}];

var reasonsTemp =angular.copy($scope.reasons); 

$scope.manageMember = function (member) {
console.log(reasonsTemp)
  $scope.reasons=reasonsTemp;// assign global object to model
  $scope.showGrid = false; 
  $scope.showForm = true;  
  $scope.memberTemp = member;   
  var EditArray=[];
   for(var i = 0 ; $scope.reasons.length>i;i++)
   {
    if($scope.reasons[i].Description === ($scope.memberTemp == undefined ? "Addition" : "bla bla bla"))// condition for is this addition or not
     {
     EditArray = $scope.reasons[i];
     break;   
     }     
     else // if is it not addition, then addition only offect that object. because we were already assigned original value globally
     {   
      if($scope.reasons[i].Description!=="Addition")
      {
        EditArray.push($scope.reasons[i])
      }
     }
   }
   $scope.reasons=EditArray;
   console.log($scope.reasons);
 }
}

Working Demo On console window

关于angularjs - 删除基于 Angular js 中的按钮单击的选择选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41217869/

相关文章:

python - Django 休息框架 : XMLHttpRequest cannot load http://127. 0.0.1:8000/xyz/api/abc

javascript - Angular.JS 延迟动画的路线更改

angularjs - Angular 1.2 和 Angular 2 共存和增量升级指南

angularjs - 使用 ngModel 和普通 ngController 而不是指令?

angularjs - 使用 expressjs 时下载的 .pdf 文件已损坏

service - Karma/Jasmine 使用依赖项对 AngularJS 服务进行单元测试

angularjs - Soundcloud API + ng-repeat 没有完全填充 View

javascript - AngularJS如何检查完成的多个http请求并在所有响应完成后做一些事情

javascript - 禁用 angularjs 中的表格行

javascript - 以编程方式触发 Kendo Chart.seriesClick 事件