Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.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 AngularJS中基于对象应用程序结构的批判性观点_Javascript_Oop_Angularjs_Architecture - Fatal编程技术网

Javascript AngularJS中基于对象应用程序结构的批判性观点

Javascript AngularJS中基于对象应用程序结构的批判性观点,javascript,oop,angularjs,architecture,Javascript,Oop,Angularjs,Architecture,在过去的几周里,当我试图学习一些知识时,我采用了某种应用程序架构 假设是一个中型大型SPA,我创建视图并应用一个主控制器: <html ng-app="app"> <body ng-controller="appCtrl"> <!-- All of the view goes in here --> </body> </html> 然后,我将在maincontroller中创建该类的实例,将视图中所有必

在过去的几周里,当我试图学习一些知识时,我采用了某种应用程序架构

假设是一个中型大型SPA,我创建视图并应用一个主控制器:

<html ng-app="app">
    <body ng-controller="appCtrl">
        <!-- All of the view goes in here -->
    </body>
</html>
然后,我将在maincontroller中创建该类的实例,将视图中所有必要的数据存储到该对象中,并通过调用类方法对其进行处理

如果应用程序需要其他功能,例如一个对话框来挑选一些东西,我会重复上面的步骤并为该对话框创建一个类


现在,虽然我很愿意这样做,但我仍然怀疑是否有人会考虑这种不良做法,如果是这样的话,为什么我会做得更好?

< P>为您的模型/数据创建服务/提供者(用API暴露数据),然后将其注入到控制器中是“角度的方式”。 当我设计angular应用程序时,我会考虑我需要的模型,并为它们创建服务。然后,我(或平行地)思考视图并设计它们。我通常在这一点上也创建自定义指令。最后,每个视图都有一个控制器,其工作是从视图所需的服务中粘合模型/数据。(使控制器尽可能薄。)

    var data = angular.module('data', []);

data.provider('$dataObject',function(){

    this.$get = function($http){

            function DataObject(){

                var field = "testvalue";
                var object = {
                    // ...
                }
            }

            DataObject.prototype.processData = function(){
               // do something
            };

        return {
            Shipment: function(){
                return new Shipment();
            }
        }
    }
});