Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.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 我如何在课堂上比较日期_Javascript_Angularjs - Fatal编程技术网

Javascript 我如何在课堂上比较日期

Javascript 我如何在课堂上比较日期,javascript,angularjs,Javascript,Angularjs,我有以下代码 <div ng-class"{'has-error': myInputForm.$valid}"> ...other stuff.... </div> ……其他东西。。。。 我喜欢这种验证,上面的代码也很有效。我想做的是比较两个日期值,所以它看起来像这样 <div ng-class"{'has-error': myStartDate < eventStartDate}"> ...other stuff.... </div

我有以下代码

<div ng-class"{'has-error': myInputForm.$valid}">
  ...other stuff....
</div>

……其他东西。。。。
我喜欢这种验证,上面的代码也很有效。我想做的是比较两个日期值,所以它看起来像这样

<div ng-class"{'has-error': myStartDate < eventStartDate}">
  ...other stuff....
</div>

……其他东西。。。。
这不起作用,这也不起作用,但如果能起作用就好了

<div ng-class"{'has-error': moment(myStartDate).isBefore(eventStartDate)}">
  ...other stuff....
</div>

……其他东西。。。。
我可以创建一个函数来返回基于参数的类

<div ng-class"getClass(myStartDate,eventStartDate)">
  ...other stuff....
</div>

……其他东西。。。。

但是我还有其他需要检查的东西,所以我想在线做这个。让我知道你有什么想法,并提前表示感谢。

不要忘记在
ng class
之后的等号

您得到了
ng类“{'has-error”:myStartDate
。它应该是
ng class=“{'has-error”:myStartDate
=
非常重要

另外,确保你的日期是真正的日期,而不是字符串

这里有一个适合我的小演示页面。您可以向下调整我的开始日期,并查看应用了has error类

祝你好运

<!doctype html>
<html ng-app="myApp">
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
    <script>
    angular.module('myApp', [])
      .controller('MyController', ['$scope', function($scope) {
        $scope.myStartDate = new Date(2015, 6, 29);
        $scope.eventStartDate = new Date(2015, 6, 28);
      }]);
    </script>
    <style> .has-error { background-color: red; } </style>
  </head>
  <body>
    <form ng-controller="MyController">
      <label for="start-in">My Start Date</label>
      <input id="start-in" type="date" ng-model="myStartDate">
      <label for="event-in">Event Start Date</label>
      <input id="event-in" type="date" ng-model="eventStartDate">
      <div ng-class="{'has-error': myStartDate < eventStartDate}">
        {{myStartDate | date: "MM/dd/yyyy"}} -- {{eventStartDate | date: "MM/dd/yyyy"}}
      </div>
    </form>
  </body>
</html>

angular.module('myApp',[])
.controller('MyController',['$scope',函数($scope){
$scope.myStartDate=新日期(2015年6月29日);
$scope.eventStartDate=新日期(2015年6月28日);
}]);
.出现错误{背景色:红色;}
我的开始日期
活动开始日期
{myStartDate | date:“MM/dd/yyyyy”}--{{eventStartDate | date:“MM/dd/yyyy”}

如果你有“其他东西”,那么把它们都放在JS的函数中,而不是把HTML代码弄得乱七八糟,不是更有意义吗?不管你理论上能做什么,这都是我的答案。第三是一个很好的方法。将表达式作为方法保留在控制器中会更有意义。因为这些方法可以很容易地测试单元测试用例。检查不应该内联完成,它们属于javascript。检查应该在JS中,并且应该基于这些检查分配属性。然后该属性将决定在ng类中分配哪个类。@PankajParkar,为什么第三个是最好的?这些检查不应该在JS中完成吗?@SoluableNonagon使html在某种意义上更具可读性..而不是在html上编写整个代码..在JS端执行表达式/比较,因为控制器代码可以使用单元测试进行测试,以确保其质量和功能。。。