比较ng-if angular内的日期

时间:2017-02-10 08:26:17

标签: html angularjs

我希望比较ng中的两个日期 - 如果这是我的玉文件的样子。

html:

<button ng-if="{{product.experationDate}} < {{CurrentDate}}" type="button> 
// do somthing
</button>

javascript:

$scope.CurrentDate = new Date();

和:date_expiration: {type: Date}

但它不起作用! 任何帮助将不胜感激。感谢

3 个答案:

答案 0 :(得分:3)

您可以尝试:

<button ng-if="product.experationDate < CurrentDate" type="button> // do somthing </button>

在像ng-if这样的Angular指令中,您不需要{{}},因为表达式会以任何方式进行评估。

答案 1 :(得分:2)

不要在模板中执行此类逻辑。这就是您的服务和控制器的用途。您需要在控制器中有一个返回布尔值的方法:

isExpirationExpired(product) {
  // your date logic here, recommend moment.js;
  return moment(product.experationDate).isBefore(moment(currentdate));
  // or without using moment.js:
  return product.experationDate.getTime() < currentdate.getTime();
  // or using Date
  return new Date(product.experationDate).valueOf() < new Date(currentdate).valueOf();
}

你的模板:

ng-if="vm.isExpirationExpired(product)"

答案 2 :(得分:0)

我认为你不能直接比较javascript日期类型。 相反,请执行此操作并删除{{}}

<button ng-if="product.experationDate.getTime() < CurrentDate.getTime()" type="button> 
// do somthing
</button>

比较它们的毫秒数。