我有一个100行的表。每行代表一个复杂对象,它是一个类型的实例。现在,需要根据用户交互在行级别上执行操作。 每个对象中可能的操作对于每一行是不同的,并且与其他对象的状态无关。 现在,我目前的模式是这样的。整个桌子的一个控制器。
$scope.list = [] // List of instances. Instances which I get by doing new on a factory function
每个对象都保持其状态。通过其具有getter,setter和行级逻辑的实例。 对于100个对象的表。我有一个控制器和100个实例。(每个对象一个)
现在我在想是否有行级控制器是有意义的。 因此,如果表中有100个对象,则会有101个控制器。其中包含100个对象。 (100行级,1个表级)
这将允许我维护控制器中每个对象的视图相关逻辑,而不是工厂实例。
我是否应该了解任何性能因素?或者模式不好?我想知道您对ng-repeat中使用控制器的反馈意见吗?
答案 0 :(得分:1)
您在询问ng-repeat
Angular结构中的嵌套控制器是否是个好主意。具体来说,您要问的是,对于100个对象中的每一个,您是否应该使用不同的控制器。你打算在"循环"中创建。不幸的是,答案是"它取决于"。有时这是一个好主意,例如当"对象"你提到的实际上是使用ng-include
动态包含的整页。在这种情况下,为每个页面设置一个控制器可能是一件好事,特别是如果每个子页面具有不同的功能。其他时候,这是一个可怕的想法,例如当ng-repeat
位于<select>
标记上并且您迭代的对象是<option>
时。在这种情况下,每个<option>
的控制器几乎总是不必要的,特别是当你有100时。你可以用内部控制器做任何事情,你可以用另一种方式做,或者在外部控制器中用更少的工作。< / p>
至于性能问题,如果您在网站上创建100个内容,controller
可能不是您最大的瓶颈。