简体   繁体   English

ng-show显示所有项目

[英]ng-show Displaying all items

Continue working with angularjs and now having problem with ng-show which on click it show me all hidden data. 继续使用angularjs,现在有ng-show的问题,点击它会显示所有隐藏的数据。 As I understand, I need to specify ID of clicked item which I want to show, from my example i'm using ng-model which had boolean value and on click it change on true, that's why it's showing all items. 据我所知,我需要指定我想要显示的点击项目的ID,从我的例子中我使用具有布尔值的ng-model,然后点击它改变为true,这就是为什么它显示所有项目。 Tell me please, how can I show item which I had selected? 请告诉我,我怎样才能显示我选择的项目?

<div class="list-group" ng-click="SetItemVisible()" ng-repeat="q in feed">
    <a href="" class="list-group-item">
        <h4 ng-model="showItem" class="list-group-item-heading">{{q.title}}</h4>
        <p ng-show="showItem" value="true" class="list-group-item-text">{{q.body}}</p>
    </a>
</div>

And js: 和js:

$scope.SetItemVisible = function () {
    if (!$scope.showItem) {
        $scope.showItem = true;
    } else {
        $scope.showItem = false;
    }
}

$scope.feed = [];

function getRssItems() {
    rssFeedService.getFeed().then(function (results) {
        $scope.feed = results.data;

    }, function (error) {
        //alert(error.data.message);
    });
}
<div class="list-group" ng-click="q.showItem != q.showItem" ng-repeat="q in feed">
    <a href="" class="list-group-item">
        <h4 ng-model="showItem" class="list-group-item-heading">{{q.title}}</h4>
        <p ng-show="q.showItem" value="true" class="list-group-item-text">{{q.body}}</p>
    </a>
</div>

You can do dis by: 你可以做:

$scope.feed = [{
    'title': "A",
    'body': "testA body"
  },
  {
    'title': "b",
    'body': "testb body"
  }
  ]
    $scope.showItem = {};
  $scope.SetItemVisible = function (index) {
    $scope.showItem[ index] = true;

  }

 <div class="list-group" ng-click="SetItemVisible($index)" ng-repeat="q in feed track by $index">
<a href="" class="list-group-item">
    <h4 ng-model="showItem[$index]" class="list-group-item-heading">{{q.title}}</h4>
    <p ng-show="showItem[$index]" value="true" class="list-group-item-text">{{q.body}}</p>
</a>

For live demo click here: http://plnkr.co/edit/ApI9eb8eQlBdoMUkn8do?p=preview 如需现场演示,请点击此处: http//plnkr.co/edit/ApI9eb8eQlBdoMUkn8do?p = preview

Assuming following JSON for feed 假设遵循JSON for feed

 [
      {
        "title":"test1",
        "body":"test body 1",
        "show":false
      },
      {
        "title":"test2",
        "body":"test body 2",
         "show":false
      }
    ]

HTML HTML

<body ng-controller="MainCtrl">

    <div class="list-group" ng-repeat="q in feed">
    <a class="list-group-item">
        <h4 ng-click="q.show=!q.show" class="list-group-item-heading">{{q.title}}</h4>
        <p ng-show="q.show" value="true" class="list-group-item-text">{{q.body}}</p>
    </a>
</div>

JS JS

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope, $http) {
  $scope.feed = [];

    $http.get('feed.json').then(function (results) {
        $scope.feed = results.data;

    }, function (error) {
        //alert(error.data.message);
    });

});

Check out here 看看这里

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM