Oi Tiago, tudo bem? Desculpa a demora mais uma vez. Bom, vi seu exemplo e tenho algumas considerações.
A ideia é que esse código não fique no controller. Isso por que quem deve saber em que parte da página o usuário está é a view. A view adicionar um EventListener no scroll e vai verificando se o usuário chegou no limite desejado. Esse limite é calcular no exemplo de código que você compartilhou:
document.addEventListener('scroll', function() {
distToBottom = getDistFromBottom();
...
}
Bom, ai depois você precisa executar a ação de carregamento das negociações no controller. A ação vai apenas fazer a consulta por negociações e retornar isso para a view. Isso por que a view precisa construir os elementos DOM dinamicamente e inserir na página.
Como no projeto, se usa o padrão proxy para saber quando o modelo mudou, tudo que precisamos fazer é atualizar o modelo. Quando o modelo da lista de negociações mudar, a view atualiza sozinha.
Neste ponto, pode ser que precisemos mudar algo na estrutura do projeto pra adaptar.
Depois o processo se repete.
O que é que te impede de fazer esse processo nesse ponto: até onde lembro, não temos consulta por paginação no projeto. Essa é outra questão que se precisa implementar, mas é no servidor.