0

当我在过去几周尝试学习一些 Angular 时,我采用了某种应用程序架构。

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

<html ng-app="app">
    <body ng-controller="appCtrl">
        <!-- All of the view goes in here -->
    </body>
</html>

现在我考虑我的应用程序必须做的事情。假设这个必须存储一些数据并使用它,我将创建一个提供程序来构建一个“类”。

    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();
            }
        }
    }
});

然后,我将在我的主控制器中创建该类的一个实例,将视图中的所有必要数据存储到该对象中,并通过调用类方法对其进行处理。

如果应用程序需要其他功能,例如选择一些内容的对话框,我将重复上述步骤并为该对话框创建一个类。

现在,虽然我以这种方式做事很自在,但我仍然想知道是否有人会考虑这种不好的做法,如果是这样,为什么会这样,我能做些什么更好?

4

1 回答 1

1

为您的模型/数据创建服务/提供者(使用 API 公开数据),然后将它们注入控制器是“Angular 方式”。

当我设计一个 Angular 应用程序时,我会考虑我需要的模型并为它们创建服务。然后我(或同时)考虑这些观点并设计它们。我通常也会在这一点上创建自定义指令。最后,每个视图都有一个控制器,它的工作是从视图需要的服务中粘合模型/数据。(使控制器尽可能薄。)

于 2013-07-24T14:13:53.957 回答