控制器和模型/服务逻辑分离

时间:2015-06-04 02:35:45

标签: angularjs model-view-controller

我知道业务逻辑属于模型,应用程序逻辑属于控制器。有人可以澄清一下业务逻辑的作用和不包括的内容,以及应用程序逻辑的作用和不包括的内容。考虑重定向,确认对话等事项

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方法吗?

1 个答案:

答案 0 :(得分:1)

“不幸的是,务实的答案是:'它取决于它。'”MVC模型不一定是“所有这一切都被破解了。”

尽管如此,我建议您可以按照这一行有意义地划分问题:“'用户界面' ...对... '不'

例如:“整个与温和用户的交流,无论它是什么,无论执行它可能涉及哪种技术阴谋,”可能都属于“用户界面==控制器。”

最终,用户将提交操作。“好的,用户真的希望这个产品消失。所以就这样。”

现在你正在使用Model层,并告诉他,“Be It So!”此时,给予Model层的指令是“命令式的命令。“

(当然,模型可能会回复:“不!我拒绝!”在这种情况下你必须回到用户界面。)

基本上,正如我所看到的,“控制器==用户界面”和“模型==实际影响数据”。 但是:“这是一个指南。”它只是不是一成不变的。