Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度:如何使用JSON值在视图中进行过滤_Javascript_Angularjs_Json_Filter - Fatal编程技术网

Javascript 角度:如何使用JSON值在视图中进行过滤

Javascript 角度:如何使用JSON值在视图中进行过滤,javascript,angularjs,json,filter,Javascript,Angularjs,Json,Filter,我想看看为什么一个非常简单的角度滤波器在示例中对我不起作用。我在网上找到的所有东西都指向这种格式,但它似乎不起作用。 基本上,我只需要包含值“completed”的数组的信息作为状态。这是我的密码: <div class="span12" id="trainingWidget" ng-controller = "trainingInfo"> <div class="span3 pull-right"> <h4 class="theme-c

我想看看为什么一个非常简单的角度滤波器在示例中对我不起作用。我在网上找到的所有东西都指向这种格式,但它似乎不起作用。 基本上,我只需要包含值“completed”的数组的信息作为状态。这是我的密码:

<div class="span12" id="trainingWidget" ng-controller = "trainingInfo">
      <div class="span3 pull-right">
        <h4 class="theme-color">Available Courses</h4>
        <table id="courseList">
          <thead>
            <tr>
              <th>Location</th>
              <th>Date</th>
            </tr>
          </thead>
          <tbody>
            <tr ng-repeat="item in training | limitTo : 6">
              <td>{{item.location}}</td>
              <td>{{item.date}}</td>
            </tr>

          </tbody>
        </table>
      </div>
      <div class="span3 pull-right">
        <h4 class="theme-color">Your Last Course</h4>
        <div id="courseStatus">
          <p ng-repeat="item in training | limitTo: 1 | filter: {status: completed}">Was completed on <span id="recentTrainingDate">{{item.completionDate}}</span><br />
            <span id="recentTrainingTitle">{{item.name}}</span></p>
          <p class="theme-color">STATUS</p>
          <p><i class="icon icon-ok"></i> Up To Date</p>
        </div>
      </div>
    </div>
我不认为这是必要的,但以下是控制器代码片段:

myBirkman.controller('trainingInfo', ['$scope', '$http', '$filter', function($scope, $http, $filter) {
    $http.get('assets/js/lib/angular/trainingData.json').success(function(data) {
        $scope.training = data;

    });
}]);

第一个ng repeat工作得很好,但是在第二个repeat上,我只想显示包含“completed”的第一个数组作为“status”的值。感谢您的帮助。

'completed'
应该是一个字符串:

{status: 'completed'}

否则它将搜索
$scope.completed

谢谢,但即使使用单引号,它仍然不起作用。啊,我很抱歉。这是正确的答案。我的问题是,唯一包含该值的项是最后一项。我认为LimitTo:1将其限制为仅具有该值的项目,而不是总项目的1。第一项的completionDate值为null。很高兴听到这个消息!我想你应该把
limito
过滤器放在
filter
过滤器之后,然后它将只限制通过第一个过滤器的过滤器(
limito
)。如下所示:
培训中的项目|筛选:{status:'completed'}| limito:1
{status: 'completed'}