我有一项任务,我需要通过 JavaScript 呈现博客的内页。
该页面具有无限滚动功能。
在初始页面加载时,我通过HTML中的 JSON字符串获取初始帖子的所有数据,然后使用JavaScript渲染它。
对于下一页(对于无限滚动),我需要调用 API ,然后为下一篇文章返回相同的 JSON字符串。
我的问题是 - 我应该如何使用MVC?我对这个概念还很陌生,仍然试图跳上正确的轨道。
我现在正在考虑以下设置。
data.js - 我将存储从JSON字符串获取的所有数据的对象,并且当我进行调用时,它将具有更新(APIJSON)方法以从API更新自身
template.js - 只是模板文字 - 接受日期,返回HTML。
view.js - 在构造函数中将 data.js 作为 this.data ,然后 render 方法,该方法获取模板返回的HTML,并通过innerHTML将其放入内容中。
model.js - getPost()方法调用api,返回数据。
controller.js - 这是我不知道该怎么做的部分。如果控制器听到滚动事件,如果我到达页面末尾,它应告诉模型做 getPost(),然后查看 render()?如何将模型的 getPost()中的数据传输到我的视图 render()?我似乎无法从XHR请求内部调用视图?
我错过了什么吗?或者也许我对MVC如何工作的整个概念是错误的?我所需要的只是让我走上正轨的人,我会自己完成剩下的工作。真的很喜欢JavaScript,几个月前才开始学习。
答案 0 :(得分:1)
controller.js 文件可以托管一个方法,该方法将触发从模型中获取数据并将其返回到视图 |更新数据。当Promise / Ajax调用解析时,js 并触发观察者呈现它。
但是对这样一个小项目没有必要超级严格。只需使用最适合您的结构,并对您有意义。