2016-12-29 58 views
0

我是Angular JS的新手。我有一个代码,我想禁用第一个条目的“删除图标”。第一项是“英语”。禁用删除图标在角js中的第一个条目

该列表包含数据:英文,中文,德文等。删除图标将被放置为其他语言,但对于第一个条目的英文应被禁用。

下面是html代码:

<div class="row"> 
       <div class="form-group "> 
        <label class="form-group col-md-3">Language</label> 
        <label class="form-group col-md-4">Title</label> 
        <label class="form-group col-md-5"> Description</label> 
       </div> 
      </div> 
<div class="row"> 
    <div> 
         <div ng-repeat="Descriptions in mainsWithDescription "> 
          <div class="form-group col-md-2 top-Margin-language"> 
           <label ng-model="Descriptions.Language">{{Descriptions.Language}}</label> 
          </div> 
          <div class="form-group col-md-4 top-Margin-Title"> 
           <input type="text" class="form-control input-md" name="titleValidate[]" ng-model="Descriptions.Title" /> 

          </div> 
          <div class="form-group col-md-5">        
           <textarea maxlength="500" class="form-control input-md noresize" name="descriptionValidate[]" noresize ng-model="Descriptions.Description"></textarea> 
          </div> 
          <div class="form-group col-md-1"> 
           <a style="cursor:pointer"><img ng-src="{{DeleteIcon_url}}" alt="delete image" ng-click="($index == !selectedDeleteIcon) || mainsWithDescription.splice($index,1)" ng-class="{'disabled': ($index == !selected)}" /> </a> 
          </div> 
         </div> 
        </div> 
       </div> 

如何解决这一问题? 谢谢

回答

1

如果始终使用英语,则可以使用由ngRepeat自动创建的$first范围变量。

<a style="cursor:pointer"><img ng-src="{{DeleteIcon_url}}" alt="delete image" ng-click="($index == !selectedDeleteIcon) || mainsWithDescription.splice($index,1)" ng-class="{'disabled': $first}" /> </a> 

另一种选择是使用Descriptions.Language和比较,english

<a style="cursor:pointer"><img ng-src="{{DeleteIcon_url}}" alt="delete image" ng-click="($index == !selectedDeleteIcon) || mainsWithDescription.splice($index,1)" ng-class="{'disabled': Descriptions.Language == 'English'}" /> </a> 
-1

你可以保持英语圈外,将其放置在循环之前

<div ng-repeat="Descriptions in mainsWithDescription "> 
          <div class="form-group col-md-2 top-Margin-language"> 
           <label ng-model="Descriptions.Language">{{Descriptions.Language}}</label> 
          </div> 
          <div class="form-group col-md-4 top-Margin-Title"> 
           <input type="text" class="form-control input-md" name="titleValidate[]" ng-model="Descriptions.Title" /> 

          </div> 
          <div class="form-group col-md-5">        
           <textarea maxlength="500" class="form-control input-md noresize" name="descriptionValidate[]" noresize ng-model="Descriptions.Description"></textarea> 
          </div> 
          <div class="form-group col-md-1"> 
           <a style="cursor:pointer"><img ng-src="{{DeleteIcon_url}}" alt="delete image" ng-click="($index == !selectedDeleteIcon) || mainsWithDescription.splice($index,1)" ng-disabled="{{Descriptions.Language}}=='English'" ng-class="{'disabled': ($index == !selected)}" /> </a> 
          </div> 
         </div> 
+0

为什么-1?这个解决方案有什么问题? –

0

的NG-重复指令有一个叫属性$第一值为true,如果它是第一行。使用它连同NG-如果因为我更喜欢没有它出现,就像这样:

<a style="cursor:pointer" ng-if="!$first"><img ng-src="{{DeleteIcon_url}}" alt="delete image" ng-click="($index == !selectedDeleteIcon) || mainsWithDescription.splice($index,1)" ng-class="{'disabled': ($index == !selected)}" /> </a> 

否则,禁用它是这样的:

<a style="cursor:pointer"><img ng-src="{{DeleteIcon_url}}" alt="delete image" ng-click="($index == !selectedDeleteIcon) || mainsWithDescription.splice($index,1)" ng-class="{'disabled': $first}" /> </a>