范围变量在函数内部未定义 - AngularJS

scope variable gets undefined inside function - AngularJS

本文关键字:未定义 AngularJS 内部 函数 变量 范围      更新时间:2023-09-26

我需要调用一个带有作用域变量的函数。它在那里的功能内部变得未定义。

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>

时间尚未确定。

您正在更改局部变量的指向值,而不是原始范围变量eventtime。由于这是一个日期对象,因此您可以改为这样做:

eventtime.setHours(event.split(':')[0]);
eventtime.setMinutes(event.split(':')[1]);

这将作用于原始范围参数,因为setHourssetMinutes是原始对象的方法。

编辑:刚刚意识到您正在尝试将currenteventtimeeventtime设置为相同的值。 然后,您需要在两者上运行setHourssetMinutes