当用于常量时,Angular中的应用程序级控制器是否可接受?

时间:2016-03-30 14:57:19

标签: angularjs design-patterns architecture

我正在创建一个包含许多交互子组件的应用程序。许多不同的视图以摘要格式显示一些相同的数据。从REST调用中检索的数据返回代码,我需要对这些代码进行查找。我想创建一个应用程序级控制器来保存所有在任何地方使用的代码转换对象(常量)。这会遵循最佳做法吗?

下面的内容。所以主体将有" appCtrl"包含由Web服务构建的常量,然后不同的包含可以将它们作为父控制器的子项引用。

的index.html

 <body>
        <div data-ng-controller="appCtrl" class="container-fluid">    
            <div data-ng-include data-src="'navigation/navigation.html'"></div>
            <div id="mainContent" data-ng-view></div>
            <div id="versionTag">
                APP: v<span data-app-version></span>
            </div>
        </div>
</body>

navigation.html

<div data-ng-controller="aumNavigationCtrl">
.
.
.
</div>

app.js (这会被截断以便您了解)

    .controller('appCtrl', ['$scope','Tasks',
      function($scope, Tasks)
      {
        //define task types to use in app
        $scope.taskTypes = [];
        Tasks.getTypes({},{}).$promise.then(
          function(data)
          {
            for (var i = 0; i < data.length; i++)
            {
              $scope.taskTypes[i] = 
              { 
                 "code": data[i].code, 
                 "description": data[i].description
              };
            }
          });
    });

navigation.js (同样,为简洁而截断)

.controller('aumNavigationCtrl', ['$scope',
function($scope)
{
    $scope.getTypeDescrip = function(typeCode)
    {
      for (var i = 0; i < $scope.taskTypes.length; i++)
      {
        if (typeCode === $scope.taskTypes[i].code)
        {
          $scope.typeDescrip = $scope.taskTypes[i].description;
        }
      }
    }
});

0 个答案:

没有答案