我试图通过一个简单的示例来了解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部分中