angular.js - Angular 中用ng-repeat搞的列表项,我想点击其中一个列表项就将改项隐藏改怎么做
怪我咯
怪我咯 2017-05-15 16:49:24
0
2
915
<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>

ng-hide里面应该怎么去写,如果写入变量的话,全部的列表项都是同一个ng-hide变量无法隐藏单个

怪我咯
怪我咯

走同样的路,发现不同的人生

membalas semua(2)
phpcn_u1582

Sila terangkan masalah anda dengan teliti, supaya orang lain akan mengambil serius masalah anda.

Anda hanya mahu mengklik "Alih Keluar" dan baris ini akan hilang daripada jadual. Malah, jika anda memadamkan rekod dalam data, mekanisme pengikatan AngularJS akan mengemas kini antara muka secara automatik dan baris ini akan hilang secara automatik. Tak perlu guna ng-hide.

Anda hanya perlu melaksanakan underCarriage(app._id) dengan baik:

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);
      }
    });
  };

}]);

Ujian tempatan saya boleh mencapai kesannya.

Peter_Zhu

Tambahkan atribut tersembunyi pada apl untuk merakam sama ada ia tersembunyi

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

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan