Maison > Questions et réponses > le corps du texte
<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
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.
天蓬老师2017-05-15 16:51:24
Ajoutez un attribut masqué aux applications pour enregistrer s'il est masqué
http://jsfiddle.net/larvata/1wr2bfLs/