Javascript AngularJS:控制器应该包含大量的项目或每个项目的控制器
我使用的是angular v1.3.15。 我的控制器显示一个对象数组中的大表: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: [ {
$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,这最终会阻止您在代码中重复自己。我希望我的答案是清楚的!:)