我试图通过一个简单的示例来了解MVP模式的工作方式。

我想在用户单击按钮时显示框内容。



function reveal(number){
  let content;
  if(number==1) content = "candy"
  else if(number==2) content = "chicken"
  else content = "pencil"
  document.getElementById("box").innerHTML = "It's a " + content
}

<button onclick="reveal(1)"> box 1</button>
<button onclick="reveal(2)"> box 2</button>
<button onclick="reveal(3)"> box 3</button><br>
<h3 id="box"> </h3>





是的,我确实知道对这段代码段使用如此复杂的模式并不是最好的主意。我只是认为这个示例非常容易理解。

现在我的问题是:


我应该将逻辑(如果... elseif ..)放入演示者还是模型中?
对于问题1,如果我将逻辑放在演示者中,是否表示该模型将无用?

最佳答案

IMO应该在视图中显示,无需去服务器,而不必等待响应,当用户做出选择时,所有数据都可以立即加载。

MVP模式包括

EventHandling =主持人

DOM操作=视图

AJAX调用=模型

您所展示的是一段HTML片段和一小段相应的javascript,它们共同操纵了DOM。可以说javascript部分处理了由用户选择引起的事件,并将其放在MVP的Presenter部分中

10-05 20:38
查看更多