Angular JS - 我可以为Tabs使用单独的控制器来加载窗格。这是好的做法吗?

时间:2016-04-10 14:07:17

标签: javascript angularjs angularjs-directive angular-controller

我是Angular JS的新手。 寻求专家意见和建议

  1. 我可以使用单独的控制器初始化每个标签以加载窗格吗?
  2. 为实施窗格提供单独的控制器是不是很好?因为我在Tab的每个窗格中都有数据库调用。
  3. 我应该使用任何指令。
  4. 在我的情况下, 每个 Tab-Pane 都会有一个格式和一个 ui-grid,它将显示来自数据库的数据。

    你能建议我更好的方法吗?

    请查看我使用窗格实现标签的基本代码。

    <!doctype html>
    <html lang="en">
      <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>Bootstrap tab panel with Angular</title>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" /> 
      </head>
      <body ng-app="app" ng-controller="MainController">
          <ul class="nav nav-tabs">
            <li ng-class="{'active' : activeTab == 1}"><a href="" ng-click="setActiveTab(1)">One</a></li>
            <li ng-class="{'active' : activeTab == 2}"><a href="" ng-click="setActiveTab(2)">Two</a></li>
            <li ng-class="{'active' : activeTab == 3}"><a href="" ng-click="setActiveTab(3)">Three</a></li>
          </ul>
    
          <div class="tab-content">
            <div class="tab-pane" ng-class="{'active': activeTab === 1}">Panel 1 Content</div>
            <div class="tab-pane" ng-class="{'active': activeTab === 2}">Panel 2 Content</div>
            <div class="tab-pane" ng-class="{'active': activeTab === 3}">Panel 3 Content</div>
          </div>
          <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script>
          <script>
            angular.module("app", [])
                .controller("MainController", ['$scope', function($scope) {
                    $scope.activeTab = 1;
    
                    $scope.setActiveTab = function(tabToSet) {
                        $scope.activeTab = tabToSet;
                    }
                }]);
          </script>
      </body>
    </html>
    

1 个答案:

答案 0 :(得分:0)

  1. 为什么要首先使用多个控制器?
  2. 你为什么要使用控制器?
  3. 是的,你应该编写自己的指令/包装器来实现窗格,你应该从角度来看服务/使用它。