![](/img/trans.png)
[英]Angularjs best practices for referencing child elements in a directive template
[英]What are the best practices for creating new elements of different type in Angularjs?
我有一个不同类型的元素列表。 每个都有一个切换按钮,以切换其可见性。 现在有两种隐藏元素的方法,既可以将元素与DOM分离,也可以将可见性设置为hidden。
据我了解,Angular仍会更新隐藏的元素,因此这可能会影响性能。 这是真的? 使用jQuery可以将元素与DOM分离,然后在需要可见时再次附加它。 但是,这种方法在Angular中甚至是一种好的做法吗?
通过阅读Angular文档及其API,我给人的印象是Angular更喜欢在开始时声明所有模板/ HTML,并使用控制器动态更改其内容。 因此,如果要添加/删除元素,可以使用ng-repeat
指令,然后通过从范围中的数组中删除元素,可以从模板中添加/删除元素。 这对于相同类型的基本元素很好。 但是,如果您具有不同类型的元素列表,这将如何工作?
编辑:
这里的一个示例是可以通过复选框使用的工具列表。 在示例中,第一种方法具有无法动态更改的静态元素列表。 这意味着您需要事先知道哪些工具可用。
第二种方法是在控制器中添加和删除工具的列表,并在模板中使用ng-repeat
遍历该列表并创建工具。 但是,我被困在这里,因为工具可以是按钮,文本字段,复选框甚至是复杂的div。
我发现在这里model first
要建立model first
有些困难,因为这只是隐藏和显示可用控件的一部分,而不是显示域模型。
我在想的一个很好的例子就是Google Maps,您可以在其中隐藏或最小化地图上的各种控件。
您可能需要熟悉ng-switch
指令 。 在一个非活动项ng-switch
被完全从DOM脱钩,而不是一个ng-hide
或ng-show
,其简单地设置CSS样式来显示或隐藏。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.