这是我的define()
:
define([], function() {
var month = ['January', 'February', 'March',
'April', 'May', 'June', 'July',
'August', 'September', 'October',
'November', 'December'
];
var mydate = "",
mysec = "";
// Code to prefix 0 for single digit date
if (new Date().getDate() < 10) {
mydate = "0" + new Date().getDate();
} else {
mydate = new Date().getDate();
}
// Code to prefix st, nd, rd, th before date
if (mydate == 1 || mydate == 21 || mydate == 31) {
mydate = mydate + "st";
} else if (mydate == 2 || mydate == 22) {
mydate = mydate + "nd";
} else if (mydate == 3 || mydate == 23) {
mydate = mydate + "rd";
} else {
mydate = mydate + "th";
}
return {
mydate: mydate,
mymonth: month[new Date().getMonth()],
mysec: function() {
if (new Date().getSeconds() < 10) {
mysec = "0" + new Date().getSeconds();
} else {
mysec = new Date().getSeconds();
alert(mysec);
}
return mysec;
};
}
});
并且,以下代码显示了我调用此定义方法返回值的位置:
define(["date"], function(date) {
return {
LoginValidate: function() {
$("#resp").append(date.mysec);
}
}
});
问题:每当我调用定义方法的属性mysec
时,它总是为每个页面加载提供相同的时间。如果它给出30秒,直到并且除非我再次加载页面,我只得到30秒。如何获取最新时间(秒)?
答案 0 :(得分:0)
整个模块定义仅评估一次,因此mysec
的值不会随着调用而改变。
如果要在每次访问此属性时弹出当前日期,请将其转换为函数:
return {
mydate: function() {
var mydate = new Date().getDate()
if (mydate < 10) {
mydate = "0" + mydate;
}
// etc., other postprocessing
return mydate;
},
// (...)
}
然后每当您需要一个新的约会时,请调用此函数为您生成它:
define(["date"], function(date) {
return {
LoginValidate: function() {
$("#resp").append(date.mydate()); // notice function call
}
}
});