我对
angularjs相当新,但在这里它.我可以通过dj / mm / yyyy形式的angularjs两个日期,但我需要做的是以某种方式减去两个日期以获得两者之间的天数差异.我创建了一个
jquery函数来执行此操作,但我不知道如何将两个日期传递给函数.所以我想知道是否有不同的方法可以解决这个问题?
我正在尝试根据两个日期之间的天数来设置触发系统,以便对某些事物进行风格化.例如,如果它在10天内,我希望它使用样式1,如果它在20天内使用样式2,依此类推.
解决方法
我也是一个angularjs新手但你不会通过你的
javascript视图模型提供属性来处理这个问题吗?
例如,有一个样式字段根据日期字段更改(即样式返回样式1,如果差异为10天),并希望通过angularjs绑定更新将传播到屏幕.
编辑
不确定这是否是你正在寻找的但是看小提琴,例如计算日期差异并根据视图模型的属性更改样式(范围)
scope.diff和scope.col是要绑定的2个属性
http://jsfiddle.net/chrismoutray/wfjv6/
HTML
<script src="http://code.angularjs.org/0.10.4/angular-0.10.4.min.js" ng:autobind></script> <div ng:controller="ComputedPropertiesCtrl"> first date <input ng:model="firstdate"> second date <input ng:model="seconddate"> difference {{diff}} <div>when the difference is greater than 10 color changes to green</div> <div>eg set the second date to 15/01/2013</div> <div style="background-color:{{col}};"> State </div> </div>
JS
function ComputedPropertiesCtrl() { var scope = this; scope.firstdate = '01/01/2013'; scope.seconddate = '10/01/2013'; scope.data_before = []; scope.differenceInDays = function() { var dt1 = scope.firstdate.split('/'),dt2 = scope.seconddate.split('/'),one = new Date(dt1[2],dt1[1]-1,dt1[0]),two = new Date(dt2[2],dt2[1]-1,dt2[0]); var millisecondsPerDay = 1000 * 60 * 60 * 24; var millisBetween = two.getTime() - one.getTime(); var days = millisBetween / millisecondsPerDay; return Math.floor(days); }; scope.color = function() { return (scope.differenceInDays() > 10) ? 'green' : 'red'; }; scope.$watch('[firstdate,seconddate]',function(currScope,newVal,oldVal) { scope.data_before = oldVal; scope.diff = scope.differenceInDays(); }); scope.$watch('[firstdate,oldVal) { scope.data_before = oldVal; scope.col = scope.color(); }); }
CSS
h2 { position: fixed; right: 10px; top: 10px; color: red; background:white;z-index:1000; } input { width: 100px; } div { margin: 10px; padding: 10px; }