javascript - 如何根据特定值显示 Angular Controller 数据

标签 javascript jquery html angularjs

我试图根据特定值(在本例中为一周中的几天)显示来自 Angular Controller 的数据。这是我的 Controller :

app.controller("ExerciseCtrl", function($scope){
    var exercise_arr = [
        {
            name: "Bicep Curl",
            weight: 30,
            day: "Monday"
        },
        {
            name: "Bench Press",
            weight: 140,
            day: "Tuesday"
        },
        {
            name: "Squats",
            weight: 140,
            day: "Thursday"
        }
    ];

    $scope.exercises = exercise_arr;
});

现在,在我的 HTML 中,我将有一个代表一周中每一天的选项卡。如何仅显示 Controller 数据的日期以及星期几的相应选项卡?

<ul class="nav nav-pills">
    <li><a href="#">Sunday</a></li>
    <li><a href="#">Monday</a></li>
    <li><a href="#">Tuesday</a></li>
    <li><a href="#">Wednesday</a></li>
    <li><a href="#">Thursday</a></li>
    <li><a href="#">Friday</a></li>
    <li><a href="#">Saturday</a></li>
</ul>

<div ng-controller="ExerciseCtrl">
    <ul ng-repeat="exercise in exercises">
        <li>
            {{exercise}}
        </li>
    </ul>
</div>

所以我最终想要的是,当我单击“星期一”选项卡时,我只想要具有星期一日期值的 Controller 数据等。提前感谢您的帮助!

最佳答案

尝试使用这样的过滤器。

var app = angular.module('anApp', []);
app.controller('ctrl', function($scope) {
  var exercise_arr = [
        {
            name: "Bicep Curl",
            weight: 30,
            day: "Monday"
        },
        {
            name: "Bench Press",
            weight: 140,
            day: "Tuesday"
        },
        {
            name: "Squats",
            weight: 140,
            day: "Thursday"
        }
    ];

    $scope.exercises = exercise_arr;
    $scope.setFilter = function(filter){
      $scope.filterDay = filter;
    }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.0/angular.min.js"></script>

<div ng-app="anApp" ng-controller="ctrl">
<ul class="nav nav-pills">
    <li ng-repeat="item in exercises"><a href="#" ng-click="setFilter(item.day)">{{item.day}}</a></li>
</ul>

<div >
    <ul ng-repeat="exercise in exercises | filter:{day:filterDay}">
        <li>
            {{exercise.name}}
        </li>
    </ul>
</div>

</div>

关于javascript - 如何根据特定值显示 Angular Controller 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44264939/

相关文章:

jquery - 新的 Twitter API - 他们说无法使用 ajax,但这行得通吗?

jquery - 无法垂直移动 jQuery Spinner 按钮

python - 计算不在列表中的列表项时打印 0

javascript - 搜索并用 alt 值替换 td 内的 img 标签

javascript - JavaScript 中的正则表达式 [^a-z][0-9]

javascript - 下一步.js。 docker 镜像所需的文件

javascript - 当您在 iOS 中将 Web 应用程序添加到主屏幕时,您将无法再存储 cookie

javascript - 当倒计时到达一位数字时对齐数字元素

javascript - 某些移动/IE 浏览器上的 jQuery 选择更改

html - Bootstrap 4 - 将导航栏元素右对齐