Javascript 作用域变量在函数-AngularJS中未定义

Javascript 作用域变量在函数-AngularJS中未定义,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我需要调用一个带有范围变量的函数。它的内部函数没有定义 setstates($scope.events.myevent,bannerslidesmyevent,$scope.eventPlus,$scope.myeventtime,myeventcurrenttime); 定义: function setstates(event,banner,eventplus,eventtime,currenteventtime) { if(event ===null || event ==='null

我需要调用一个带有范围变量的函数。它的内部函数没有定义

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
未定义

HTML:



未设置时间。

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

eventtime.setHours(event.split(':')[0]);
eventtime.setMinutes(event.split(':')[1]);
这将作用于原始范围参数,因为
setHours
setMinutes
是原始对象的方法


编辑:刚刚意识到您正在尝试将
currenteventtime
eventtime
设置为相同的值。您需要在这两个系统上运行
setHours
setMinutes
,那么

您是说在调用方法时定义了eventtime/$scope.myeventtime,但在方法内部没有定义吗?当您在函数末尾为它设置值时,它在什么时候是未定义的?调用函数时,它不设置时间@atmdI在代码中看不到$scope.myeventtime。如果声明了$scope.myeventtime,则需要将值赋给$scope.myeventtime本身,而不是eventtime。$scope.myeventtime位于调用setstates的位置。当我发出警报(currenteventtime)时,我必须将小时和分钟设置为
ng model=“myeventtime”
它显示时间,但没有被分配到
eventtime
你能创建一个有问题的pkunker吗?
eventtime.setHours(event.split(':')[0]);
eventtime.setMinutes(event.split(':')[1]);