不能选择使用MV *或不使用MV *

时间:2017-07-17 08:24:48

标签: javascript jquery html model-view-controller model

我有一项任务,我需要通过 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,几个月前才开始学习。

1 个答案:

答案 0 :(得分:1)

controller.js 文件可以托管一个方法,该方法将触发从模型中获取数据并将其返回到视图 |更新数据。当Promise / Ajax调用解析时,js 并触发观察者呈现它。

但是对这样一个小项目没有必要超级严格。只需使用最适合您的结构,并对您有意义。