2015-12-11 36 views
0

我用yii 2.0。我使用数据提供者显示列表。为此我整合了无限的滚动分页。yii2涅inf infinitescroll传呼机不工作

下面是我的代码:

echo yii\widgets\ListView::widget([ 
'id' => 'my-listview-id', 
'dataProvider' => $listDataProvider, 
'itemView' =>'_item_view', 
'pager' => [ 
    'class' => nirvana\infinitescroll\InfiniteScrollPager::className(), 
    'widgetId' => 'my-listview-id', 
    'itemsCssClass' => 'test', 
] 

]); 

这里的前10条记录显示的罚款。然后显示“加载更多”按钮。但没有加载。无限滚动不起作用。

查看源代码时,以下脚本显示在页脚处。

<script type="text/javascript">$('#my-listview-id .test').infinitescroll({"maxPage":5,"contentSelector":"#my-listview-id .test","itemSelector":"#my-listview-id .test >","navSelector":"#my-listview-id ul.pagination","nextSelector":"#my-listview-id ul.pagination li.next a:first","loading":{"img":"/fancytemple_blog/assets/a7b78b36/ajax-loader.gif"}}, ,);</script> 

在控制台中显示的脚本错误是Uncaught SyntaxError: Unexpected token ,

任何人都可以帮助解决这个问题。谢谢

+0

这件作品看起来很奇怪:}},,);(连续两个逗号) –

+0

是的,当我使用niivana infinitescroll for yii2时,输出看起来就像那样。有任何建议吗? –

+0

我很抱歉让你失望,但我不是JS家伙。请等待知道剧本发生的人。 –

回答

0

你的代码看起来不错,但我检查了你的生成的JavaScript对我的,这是不同的,我想因为我已经使用了更多的插件选项。所以这可能是一个可能的解决方案。

<?= 
ListView::widget([ 
    'id' => 'feed', 
    'dataProvider' => $dataProvider, 
    'layout' => "{summary}\n<div class=\"items\">{items}</div>\n{pager}", 
    'itemView' => '_itemview', 
    'summary' => '', 
    'emptyText' => $emptyText, 
    'pager' => 
    ['class' => \nirvana\infinitescroll\InfiniteScrollPager::className(), 
     'widgetId' => 'feed', 
     'itemsCssClass' => 'items', 
     //'contentLoadedCallback' => 'function(id, data) {$("time.timeago").timeago();}', 
     'pluginOptions' => [ 
      'loading' => [ 
       'msgText' => "<center><img src='/loading.gif'></center>", 
       'img' => "/1x1-pixel.png", 
       'finishedMsg' => $emptyText, 
      ], 
     //'behavior' => \nirvana\infinitescroll\InfiniteScrollPager::BEHAVIOR_TWITTER, 
     ], 
    ] 
]); 
?> 

如果添加额外的选项不工作,然后尝试确保您运行的是最新版本,并尝试使用它与别的还有一个页面上,以确保没有什么搞乱。希望这可以帮助。

另一个想法是确保在你的数据提供器中设置分页,使无限滚动并确保分页是好的,如果它有效,那么你知道这是无限滚动的问题,而不是别的。

$dataProvider = new ActiveDataProvider([ 
    'query' => $query, 
    'pagination' => ['pageSize' => '10']]); 
0

你的问题,是由于其中contentLoadedCallbacknull默认的bug,你也没有通过配置覆盖它。它已被修复在this commit。只要做composer update,它应该可以正常工作。