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]);