在Angularjs中创建不同类型的新元素的最佳实践是什么?

时间:2013-12-13 13:55:49

标签: javascript html angularjs

我有不同类型的元素列表。每个都有一个切换,切换其可见性。现在有两种方法可以隐藏元素,或者将其从DOM中分离出来,或者将可见性设置为隐藏。

据我所知,Angular仍会更新隐藏元素,因此这可能会影响性能。这是真的?使用jQuery,可以从DOM中分离元素,然后在需要可见时再次附加它。但这种方法在Angular中是否也是一种很好的做法?

通过阅读Angular文档及其API,我给人的印象是Angular更喜欢在开始时声明所有模板/ HTML,并且使用控制器动态更改其内容。因此,如果要添加/删除元素,则使用ng-repeat指令,然后通过从作用域中的数组中删除元素,可以在模板中添加/删除元素。这适用于相同类型的原始元素。但是,如果您有不同类型的元素列表,这是如何工作的?

编辑:

http://jsfiddle.net/k26bA

此处的示例是可以通过复选框使用的工具列表。在该示例中,第一种方法具有静态的元素列表,其不能动态地改变。这意味着您需要事先知道哪些工具可用。

第二种方法在控制器中有一个列表,您可以在其中添加和删除工具,在模板中使用ng-repeat迭代该列表并创建工具。但是,我被困在这里,因为工具可以是按钮,文本字段,复选框甚至是复杂的div。

我觉得这里有一个model first有点困难,因为这只是隐藏和显示可用控件的一部分,而不是显示域模型。

我正在考虑的一个很好的例子是谷歌地图,您可以在其中隐藏或最小化地图上的各种控件。

1 个答案:

答案 0 :(得分:0)

您可能需要熟悉ng-switch directiveng-switch中的非活动项目完全取消了DOM,而不是ng-hideng-show,它只是将CSS样式设置为显示或隐藏。