我需要使用范围变量调用函数。它的内部函数未定义。
setstates($scope.events.myevent,bannerslidesmyevent,$scope.eventPlus,$scope.myeventtime,myeventcurrenttime);
定义:
function setstates(event,banner,eventplus,eventtime,currenteventtime)
{
if(event ===null || event ==='null' || event ===undefined)
{
banner.goto(2);
eventplus = -1;
}
else if(event[0] === '+')
{
banner.goto(2);
eventplus = event.split('+')[1];
}
else
{
currenteventtime.setHours(event.split(':')[0]);
currenteventtime.setMinutes(event.split(':')[1]);
eventtime = currenteventtime;
}
}
问题是$scope.myeventtime
,函数内部为eventtime
,未定义。
HTML:
<timepicker class="timepicker" ng-model="myeventtime" hour-step="hstep" minute-step="mstep" show-meridian="ismeridian"></timepicker>
时间没有设定。
答案 0 :(得分:0)
您正在更改局部变量eventtime
的指向值而不是原始范围变量。
由于这是一个日期对象,您可以这样做:
eventtime.setHours(event.split(':')[0]);
eventtime.setMinutes(event.split(':')[1]);
这将作用于原始范围参数,因为setHours
和setMinutes
是原始对象的方法。
修改:刚刚意识到您正在尝试将currenteventtime
和eventtime
设置为相同的值。你需要在两者上运行setHours
和setMinutes