Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t选择使用MV*还是不使用MV*_Javascript_Jquery_Html_Model View Controller_Model - Fatal编程技术网

Javascript Can';t选择使用MV*还是不使用MV*

Javascript Can';t选择使用MV*还是不使用MV*,javascript,jquery,html,model-view-controller,model,Javascript,Jquery,Html,Model View Controller,Model,我有一个任务,需要通过JavaScript呈现博客的内部页面 该页面具有无限滚动功能 在初始页面加载时,我通过HTML中的JSON字符串获取初始帖子的所有数据,然后用JavaScript呈现 对于接下来的页面(无限滚动),我需要调用API,然后在下一篇文章中返回相同的JSON字符串 我的问题是-我应该如何使用MVC来实现这一点?我对这个概念还相当陌生,仍在努力沿着正确的轨道前进 我现在正在考虑以下设置 data.js-一个对象,我将在其中存储从JSON字符串中获取的所有数据,当我进行调用时,它将

我有一个任务,需要通过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请求内部调用view


我错过什么了吗?或者我对MVC如何工作的整个概念是错误的?我所需要的就是有人让我走上正轨,剩下的我自己来做。非常喜欢JavaScript,几个月前才开始学习。

controller.js
文件可以承载一个方法,当Promise/Ajax调用解决时,该方法将触发从模型获取数据并(将其返回到视图|更新data.js并触发观察者渲染)


但是没有必要对这样一个小项目过于严格。只需使用将来最容易维护且对您有意义的结构。

感谢您向我解释流程,Bananenmanfrau!我想在这里使用MV*,这样我就可以用一种实用的方式来学习它。也许你可以给我举一个小例子,说明在这样的项目中,观察者和控制器是什么样子的?似乎我在理论中遗漏了一些东西。差不多-controller.js会有一个方法,比如loadArticle()=它会有这样的东西。model.getPost()对吗?如何在scroll上正确调用此方法?然后,当getPost()请求完成时,我如何确切地告诉view呈现它获取的数据呢?请查看以下链接:试着使用它。这是让它点击的最好方法。阅读总是只能让你走这么远:)