Отключить значок удаления для первой записи в angular js

Я новичок в Angular JS. У меня есть код, в котором я хочу отключить «удалить значок» для первой записи. Первая запись- «English».

Список содержит данные: английский, китайский, немецкий и т.д.. Значок Удалить должен быть помещен для других языков, но для английского языка, который является первой записью, должен быть отключен.

Ниже приведен 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>

Как это исправить?
Спасибо

3 ответа

  1. Если английский всегда первый, можно использовать переменную $firstscope, которая создается автоматически ngRepeat.

    <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>
    
  2. Вы можете не включать английский язык в цикл, помещая его перед циклом

    или

    <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>
    
  3. Директива ng-repeat имеет свойство с именем $first, которое вычисляется как true, если это первая строка. Используйте его вместе с НГ-если по мере того как я предпочитаю не иметь его появиться, то как это:

    <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>