【发布时间】:2024-05-29 11:55:02
【问题描述】:
如果字段 seconddate 大于 firstdate,我需要显示该字段,否则不应显示第二个字段。日期格式为 dd mmm yyyy(例如,2017 年 11 月 22 日)。该函数返回真或假。但不知道如何在 ng-repeat 中传递它。如果我把这个函数放在 ng-if 中,它什么也不返回。任何帮助将不胜感激。下面是代码:
Json:
GetDetails:
{
Displaydetails:
{
employees: [
{
"name" : "Anu",
"city" : "abc",
"firstdate" : "12 Dec 2004",
"seconddate" : "31 Nov 2014"
},
{
"name" : "Anu",
"city" : "abc",
"firstdate" : "12 Dec 2004",
"seconddate" : "31 Nov 2014"
},
{
"name" : "Anu",
"city" : "abc",
"firstdate" : "12 Dec 2004",
"seconddate" : "31 Nov 2014"
},
{
"name" : "Anu",
"city" : "abc",
"firstdate" : "12 Dec 2004",
"seconddate" : "31 Nov 2014"
}
]
}
}
HTML:
<div ngcontroller = "mycontroller as myctrl" ng-repeat="employee in myctrl.empdetails.employees">
<div>
name
</div>
<div>
{{employee.name}}
</div>
<div>
city
</div>
<div>
{{employee.city}}
</div>
<div>
firstdate
</div>
<div>
{{employee.firstdate}}
</div>
<div ng-if="employee.showdate()>
<div>
seconddate
</div>
<div ng-if="employee.keepgoing == true">
{{employee.seconddate}}
</div>
</div>
控制器:
function myController ($scope,$rootScope,myService)
{
var ctrl = this;
ctrl.initfunc = function()
{
myService.getempDetails().then(function()
{
ctrl.empdetails=myservice.empack;
}
ctrl.showdate =function()
{
var keepgoing = true;
ctrl.dateval = ctrl.empdetails.employees;
angular.forEach (dateval, function(value, key)
{
var firstdateval = new Date (value.firstdate);
var seconddaateval = new Date (value.seconddate);
if(Date.parse(firstdateval) < Date.parse(seconddateval))
{
keepgoing = true;
}
else
{
keepgoing = false;
}
});
}
}
}
function myservice()
{
this.getempDetails = function(req)
{
var request = {
url:jsonfilepath,
method: 'GET'
}
return this.makecall(request) . then(function(response)
{
var res = response.data;
if(res)
{
this.empack = res.displaydetails.employees;
}
}
}
}
【问题讨论】: