Я реализую эффект бесконечной прокрутки, находящийся под сильным влиянием этого урока:
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):
Uncaught Ошибка: NOT_FOUND_ERR: DOM Exception8
Я думаю, что проблема заключается здесь:
boxes.push Mustache.render $('#mustache_product').html(), product
, потому что это оборачивает каждый вывод шаблона в "кавычки", то есть
["<div>stuff</div>","<div>more stuff</div>"]
, а не:
[<div>stuff</div>,<div>more stuff</div>]
Но у меня возникла небольшая психическая блокада из-за того, что я делаю неправильно ... кто-нибудь хочет помочь?