このチュートリアルの影響を強く受けた無限スクロール効果を実装しています。
http://railscasts.com/episodes/295-sharing-mustache-templates?view=asciicast
ただし、フロント エンドで Jquery Masonry (http://masonry.desandro.com/demos/adding-items.html) を使用しているため、少し異なる方法で行っています。
とにかく、これを次のように実装すると:
jQuery ->
window.endlessScroll = () ->
if $('#products_page').length
new ProductPager
class ProductPager
constructor: ->
$(window).scroll(@check)
check: =>
if @nearBottom()
$(window).unbind('scroll', @check)
$.getJSON($('#products_page').data('json-url'), @render)
nearBottom: =>
$(window).scrollTop() > $(document).height() - $(window).height() - 150
render: (products) =>
boxes= []
$container = $('#products_page')
for product in products
boxes.push Mustache.render $('#mustache_product').html(), product
$container.append(boxes).masonry "appended", boxes
$(window).scroll(@check)
次のエラーが表示されます (Chrome):
キャッチされないエラー: NOT_FOUND_ERR: DOM 例外 8
問題はここにあると思います:
boxes.push Mustache.render $('#mustache_product').html(), product
これは、各テンプレート出力を「引用符」で囲むためです。
["<div>stuff</div>","<div>more stuff</div>"]
それよりも:
[<div>stuff</div>,<div>more stuff</div>]
しかし、私は自分が間違っていることについて少し精神的なブロックを抱えています....誰か助けてくれる人はいますか?