我知道业务逻辑属于模型,应用程序逻辑属于控制器。有人可以澄清一下业务逻辑的作用和不包括的内容,以及应用程序逻辑的作用和不包括的内容。考虑重定向,确认对话等事项
e.g。
/**
* Removes a product
* @param product
*/
_this.remove = function(product){
if(confirm('Are you sure you want to remove "' + product.product_name + '"?')){
var idx = _this.currentProductsOrdered.indexOf(product);
_this.currentProductsOrdered.splice(idx, 1);
}
};
或者我应该在控制器中有确认对话框,然后调用remove方法吗?
答案 0 :(得分:1)
“不幸的是,务实的答案是:'它取决于它。'”MVC模型不一定是“所有这一切都被破解了。”
尽管如此,我建议您可以按照这一行有意义地划分问题:“'用户界面' ...对... '不'”
例如:“整个与温和用户的交流,无论它是什么,无论执行它可能涉及哪种技术阴谋,”可能都属于“用户界面==控制器。”
最终,用户将提交操作。“好的,用户真的希望这个产品消失。所以就这样。”
现在你正在使用Model层,并告诉他,“Be It So!”此时,给予Model层的指令是“命令式的命令。“
(当然,模型可能会回复:“不!我拒绝!”在这种情况下你必须回到用户界面。)
基本上,正如我所看到的,“控制器==用户界面”和“模型==实际影响数据”。 但是:“这是一个指南。”它只是不是一成不变的。