Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.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_Html_Angularjs - Fatal编程技术网

Javascript AngularJS:控制器应该包含大量的项目或每个项目的控制器

Javascript AngularJS:控制器应该包含大量的项目或每个项目的控制器,javascript,html,angularjs,Javascript,Html,Angularjs,我使用的是angular v1.3.15。 我的控制器显示一个对象数组中的大表: $scope.table = [ { name: "A", availableConnection: [ { id: 1, displayName: "Foo" }, { id: 2, displayName: "Bar" }, ... ]}, { name: "B", availableConnection: [ {

我使用的是angular v1.3.15。 我的控制器显示一个对象数组中的大表:

$scope.table = [
  { name: "A",
    availableConnection: [
      { id: 1, displayName: "Foo" },
      { id: 2, displayName: "Bar" },
      ...
    ]},
  { name: "B",
        availableConnection: [
          { id: 1, displayName: "Doo" },
          { id: 2, displayName: "Boo" },
          ...
        ]},
  ...
];
我想知道我的控制器是否最好为数组$scope.table中的每个单元格保存控制器

<tr ng-repeat="x in table" ng-controller="RowController">
      <td>
          <select ng-options="a.displayName for a in availableConnection" >                          
          </select>
      </td>
</tr>

我无法复制我的代码,因为它位于专用网络内。 这个例子解释了我的意思。
*另外,整个页面都有一个控制器,这意味着孔表在控制器内。

AngularJS中的控制器通常不用于任何“繁重的工作”,包括大数据集。 如果您有一个大型数据集,那么应该将值存储在JSON文件中。您可以使用$http服务检索数据:

 $http.get("my_data.json")
    .then(function(response) {
        $scope.table = response.data;
    });

然后,您可以对许多JSON文件只使用一个控制器,然后将其打印到HTML文件中。希望这有帮助

是否使用嵌套控制器是判断调用,但是作用域应该引用模型,而不是模型——因此不要建模/将数据放入作用域。您的模型/数据通常应在服务中

在开发角度应用程序时,首先尝试考虑您的模型。将它们放入带有API的服务或工厂中,以获取/编辑/操作模型。然后下一步是设计视图。每个视图都应该投影/使用/操作模型的某些子集为每个视图创建一个控制器,只需将所需的模型子集粘贴到视图。使控制器尽可能薄


因此,在我看来,最好使用嵌套控制器,而不是像您应该知道的那样使用嵌套控制器。如果使用嵌套控制器,代码会变得更复杂

我没有将数据存储在控制器中。我是从api得到的。问题是,如果我需要为表中的每一行创建控制器,或者只为整个页面创建一个控制器,那么您应该为整个表使用一个控制器。如果您对每一行使用一个控制器,那么就不需要ng repeat,这最终会阻止您在代码中重复自己。我希望我的答案是清楚的!:)