【问题标题】:using result of ng-repeat as a filter a JSON file使用 ng-repeat 的结果作为 JSON 文件的过滤器
【发布时间】:2018-07-19 08:22:18
【问题描述】:

我有一个这样的 JSON 文件:

"availableTimes": [
    {
      "date": "2018/07/02",
      "times": ["14","15","16", "17","18","19","20" ]
    },
    {
      "date": "2018/08/02",
      "times": [ "14", "15", "16", "17","18"]
    },
    {
      "date": "2018/09/02",
      "times": [ "14",  "15", "16", "17","18"]
    }      ],
  "reservedTimes": [
    {
      "date": "2018/07/02",
      "times": "14",          
    },
    {
      "date": "2018/08/02",
      "times": "15",

    }

  ]

我想通过按钮显示所有可用时间,但如果该时间处于保留时间,则该按钮被禁用。 我想用 ng-repeat 写,但我不知道怎么做到这一点???!! 例如:

        <div ng-repeat="x in sp.availableTimes|filter:{'date':visitData}">
              <div ng-repeat="t in x.times">
                   <button ng-disable="dis(t)">
                     // disabled button if t is in s.reservedTimes.times
                   </button>

              </div>
        </div>

在我们拥有的控制器中:

 $scope.dis = function (time) {

      angular.forEach($scope.sp.reservedTimes, function (value, key) {
          if ( value.times == time)
              return true;
          else
              return false;
      });

但这不能正常工作!

【问题讨论】:

  • 请提供示例代码。

标签: angularjs filter angularjs-ng-repeat


【解决方案1】:

首先你应该创建一个 json 对象来引用你的 json 文件。之后,您可以解析 HTML 中的数据以检索所需的时间。

<ul ng-repeat = "let c of object">
  <li>
    <button>
      {{c.reservedTimes.times}}>
    </button>
  </li>
  <li>
    <button>
      {{c.availableTimes.times}}>
    </button>
  </li>
</ul>

【讨论】:

  • 不幸的是,我不使用 ionic,还有其他想法吗?!
  • 这与 Angular 的前提相同。虽然语法有点不同。请查看编辑后的 ​​HTML。
  • 谢谢 Ivas,我的问题是用按钮显示特定日期的“availableTimes”,并禁用该日期在 ReservedTimes 中的那些按钮。我的例子是日期:“2018/07/ 02" 我们有七个按钮:"14","15","16","17","18","19","20",按钮“14”应该被禁用。
  • 您是否尝试过添加此行 ng-disabled="all" ?
猜你喜欢
  • 2015-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-01
  • 2016-11-23
  • 1970-01-01
相关资源
最近更新 更多