Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs AnguralUI日历初始化问题:TypeError:无法读取属性';长度';未定义的_Angularjs_Angular Ui - Fatal编程技术网

Angularjs AnguralUI日历初始化问题:TypeError:无法读取属性';长度';未定义的

Angularjs AnguralUI日历初始化问题:TypeError:无法读取属性';长度';未定义的,angularjs,angular-ui,Angularjs,Angular Ui,我正在尝试实现AngularUI日历。我用bower安装了所有需要的依赖项,包括以下方式的脚本: <script type="text/javascript" src="bower_components/jquery/dist/jquery.min.js"></script> <script type="text/javascript" src="bower_components/jquery-ui/ui/jquery-ui.js"></script&g

我正在尝试实现AngularUI日历。我用bower安装了所有需要的依赖项,包括以下方式的脚本:

<script type="text/javascript" src="bower_components/jquery/dist/jquery.min.js"></script>
<script type="text/javascript" src="bower_components/jquery-ui/ui/jquery-ui.js"></script>
<script type="text/javascript" src="bower_components/angular/angular.js"></script>    
<script type="text/javascript" src="bower_components/angular-ui-calendar/src/calendar.js"></script>
<script type="text/javascript" src="bower_components/fullcalendar/fullcalendar.js"></script>
<script type="text/javascript" src="bower_components/fullcalendar/gcal.js"></script>
UI对我来说运行良好,在日历模式(basicWeek、month和agendaDay)之间切换时,按钮也运行良好。 但是,当我刷新页面时,我可以在控制台中看到4个相同的错误:

TypeError: Cannot read property 'length' of undefined
at Object.getTokens     (file:///Users/vtaliar/Dropbox/Phil/Company/bower_components/angular-ui-    calendar/src/calendar.js:86:36)
at Scope.$digest (file:///Users/vtaliar/Dropbox/Phil/Company/bower_components/angular/angular.js:12439:40)
at Scope.$apply (file:///Users/vtaliar/Dropbox/Phil/Company/bower_components/angular/angular.js:12712:24)
at file:///Users/vtaliar/Dropbox/Phil/Company/bower_components/angular/angular.js:1419:15
at Object.invoke (file:///Users/vtaliar/Dropbox/Phil/Company/bower_components/angular/angular.js:3918:17)
at doBootstrap (file:///Users/vtaliar/Dropbox/Phil/Company/bower_components/angular/angular.js:1417:14)
at bootstrap (file:///Users/vtaliar/Dropbox/Phil/Company/bower_components/angular/angular.js:1431:12)
at angularInit (file:///Users/vtaliar/Dropbox/Phil/Company/bower_components/angular/angular.js:1344:5)
at HTMLDocument.<anonymous> (file:///Users/vtaliar/Dropbox/Phil/Company/bower_components/angular/angular.js:21817:5)
at j (file:///Users/vtaliar/Dropbox/Phil/Company/bower_components/jquery/dist/jquery.min.js:2:26860) angular.js:9997
(anonymous function) angular.js:9997
(anonymous function) angular.js:7299
Scope.$digest angular.js:12466
Scope.$apply angular.js:12712
(anonymous function) angular.js:1419
invoke angular.js:3918
doBootstrap angular.js:1417
bootstrap angular.js:1431
angularInit angular.js:1344
(anonymous function) angular.js:21817
j jquery.js:3073
k.fireWith jquery.js:3185
n.extend.ready jquery.js:3391
TypeError:无法读取未定义的属性“length”
at Object.getTokens(file:///Users/vtaliar/Dropbox/Phil/Company/bower_components/angular-ui-    calendar/src/calendar.js:86:36)
在范围内。$摘要(file:///Users/vtaliar/Dropbox/Phil/Company/bower_components/angular/angular.js:12439:40)
在范围内。$apply(file:///Users/vtaliar/Dropbox/Phil/Company/bower_components/angular/angular.js:12712:24)
在file:///Users/vtaliar/Dropbox/Phil/Company/bower_components/angular/angular.js:1419:15
在Object.invoke(file:///Users/vtaliar/Dropbox/Phil/Company/bower_components/angular/angular.js:3918:17)
在多布茨特拉普(file:///Users/vtaliar/Dropbox/Phil/Company/bower_components/angular/angular.js:1417:14)
自动引导(file:///Users/vtaliar/Dropbox/Phil/Company/bower_components/angular/angular.js:1431:12)
安加拉尼特酒店(file:///Users/vtaliar/Dropbox/Phil/Company/bower_components/angular/angular.js:1344:5)
在HTMLDocument。(file:///Users/vtaliar/Dropbox/Phil/Company/bower_components/angular/angular.js:21817:5)
在j(file:///Users/vtaliar/Dropbox/Phil/Company/bower_components/jquery/dist/jquery.min.js:2:26860)www.js:9997
(匿名函数)angular.js:9997
(匿名函数)angular.js:7299
范围.$js:12466
范围:$apply angular.js:12712
(匿名函数)angular.js:1419
调用angular.js:3918
doBootstrap.js:1417
bootstrap.js:1431
angularInit angular.js:1344
(匿名函数)angular.js:21817
jquery.js:3073
k、 fireithjquery.js:3185
n、 extend.ready jquery.js:3391
正如您所看到的,我试图在页面加载时显示两个事件,但无法显示。此外,在dayClick事件上,我想扩展我的模型并在日历上再添加一个事件

文档中说,当单击某个单元格时(dayClick事件激发),这应该指向当前单击的td元素,但在我的例子中,这是指向窗口的

有人能告诉我我做错了什么吗? 我没有很多与Angular合作的经验,所以,也许,我在这里犯了一些错误。非常感谢你的帮助


最好的问候

事件源应该是事件对象数组的数组。将您的eventsources更改为以下内容

    $scope.events = [
        {
            title: 'Event1',
            start: '2014-07-19'
        },
        {
            title: 'Event2',
            start: '2011-07-20'
        }
    ];
$scope.eventSources = [$scope.events];

希望这会有所帮助

事件源应该是事件对象数组的数组。将您的eventsources更改为以下内容

    $scope.events = [
        {
            title: 'Event1',
            start: '2014-07-19'
        },
        {
            title: 'Event2',
            start: '2011-07-20'
        }
    ];
$scope.eventSources = [$scope.events];

希望这会有所帮助

我想知道一些事情,所以我创建了一个Plunk来检查一下

我发现的唯一问题是
dayClick
传递4个参数
(event、date、jsEvent、view)
这可能就是为什么您得到了一个window对象,添加event会在我的测试中传递回元素

长度错误指的是GetTokens,查看日历代码显示它指的是配置数组的长度。确保数组已正确关闭,并且没有任何错误的分号,您切断了函数的结尾,因此我不能确定

其他一切似乎都很好,我必须包括moment.js,但你应该会得到一个关于错过瞬间的错误。如果你是这样的话,Bower可能会处理这个问题

使用的文件:


我想知道一些事情,所以我创建了一个Plunk来检查这个

我发现的唯一问题是
dayClick
传递4个参数
(event、date、jsEvent、view)
这可能就是为什么您得到了一个window对象,添加event会在我的测试中传递回元素

长度错误指的是GetTokens,查看日历代码显示它指的是配置数组的长度。确保数组已正确关闭,并且没有任何错误的分号,您切断了函数的结尾,因此我不能确定

其他一切似乎都很好,我必须包括moment.js,但你应该会得到一个关于错过瞬间的错误。如果你是这样的话,Bower可能会处理这个问题

使用的文件:


谢谢!我已经修复了一个问题:控制台中不再有错误。但我的事件不会显示,dayClick仍然指向窗口。还有什么建议吗?谢谢。@Vov4yk如果不了解更多有关代码的信息,我不能肯定。我希望您会遇到范围问题,因此启动
{{{eventSources}}
以查看这是否正确是一件事。您可能从
.show()
命令中获得窗口,我不是100%确定,但将
console.log(这个)在<代码>日的顶部,单击<代码>查看是否发生了这种情况。我要离开一段时间,但今晚我会再看看这个。谢谢!我已经修复了一个问题:控制台中不再有错误。但我的事件不会显示,dayClick仍然指向窗口。还有什么建议吗?谢谢。@Vov4yk如果不了解更多有关代码的信息,我不能肯定。我希望您会遇到范围问题,因此启动
{{{eventSources}}
以查看这是否正确是一件事。您可能从
.show()
命令中获得窗口,我不是100%确定,但将
console.log(这个)在<代码>日的顶部,单击<代码>查看是否发生了这种情况。我有一段时间不在家,但今晚我会再看一看。当日历加载时,它可以正常工作。但当我尝试像这样动态添加事件时:$scope.eventSources[0].push({title:'Event3',start:'2014-07-25');它不起作用,应该在理想情况下起作用。。可能是消化循环
    $scope.events = [
        {
            title: 'Event1',
            start: '2014-07-19'
        },
        {
            title: 'Event2',
            start: '2011-07-20'
        }
    ];
$scope.eventSources = [$scope.events];