2015-12-11 34 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,它應該可以正常工作。