recherche

Maison  >  Questions et réponses  >  le corps du texte

angulaire.js - Utilisez ng-repeat pour créer des éléments de liste dans Angular. Je souhaite masquer l'élément en cliquant sur l'un des éléments de la liste. Comment faire cela ?

<tr ng-repeat = "app in apps" ng-hide = "">
            <td>
                <a  data-uk-modal="{target:'#{{app._id}}'}">{{app.name}}</a>
            </td>
            <td>{{app._id}}</td>
            <td>{{app.author}}</td>
            <td>{{appCategoryMap[app.category].name}}</td>
            <td>
                <a  class="uk-button uk-button-danger" ng-click  = "underCarriage(app._id)">下架</a>
            </td>

        </tr>

Comment écrire en ng-hide ? Si vous écrivez une variable, tous les éléments de la liste seront la même variable ng-hide et ne pourront pas en cacher un seul

怪我咯怪我咯2776 Il y a quelques jours942

répondre à tous(2)je répondrai

  • phpcn_u1582

    phpcn_u15822017-05-15 16:51:24

    Veuillez décrire soigneusement votre problème, afin que les autres prennent votre problème au sérieux.

    Vous voulez simplement cliquer sur "Supprimer" et cette ligne disparaîtra du tableau. En fait, si vous supprimez un enregistrement dans les données, le mécanisme de liaison de AngularJS mettra automatiquement à jour l'interface, et cette ligne disparaîtra automatiquement. Pas besoin d'utiliser ng-hide.

    Il vous suffit de bien mettre en œuvre underCarriage(app._id) :

    controllers.controller('SFTestCtrl', ['$scope', function($scope) {
      $scope.apps = [
        {
          _id: 0,
          name: 'test',
          author: 'test',
          category: 'test'
        },
        {
          _id: 1,
          name: 'test1',
          author: 'test1',
          category: 'test1'
        },
        {
          _id: 2,
          name: 'test2',
          author: 'test2',
          category: 'test2'
        }
      ];
    
      $scope.appCategoryMap = {
        test: {
          name: 'test'
        },
        test1: {
          name: 'test1'
        },
        test2: {
          name: 'test2'
        }
      };
    
      $scope.underCarriage = function(id) {
        $scope.apps.forEach(function(v, i, _) {
          if (v._id == id) {
            _.splice(i, 1);
          }
        });
      };
    
    }]);
    

    Mon test local peut obtenir l'effet.

    répondre
    0
  • 天蓬老师

    天蓬老师2017-05-15 16:51:24

    Ajoutez un attribut masqué aux applications pour enregistrer s'il est masqué

    http://jsfiddle.net/larvata/1wr2bfLs/

    répondre
    0
  • Annulerrépondre