我想根据变量选择要使用的指令。具体来说,我在列表中有几种不同类型的项目,因此我想使用项目类型来选择可以显示它的指令。
ng-switch似乎用于此目的。但是,它将所有开关选择添加到DOM中,然后隐藏除一个之外的所有开关。如果要显示许多项目类型或一长串列表,则该方法似乎效率不高。另外,使用开关会将逻辑放入HTML中。首选的是一种“策略模式”,它只会选择正确的指令,也许就像
<display-{{item.type}} data="item.data" />
指令为“displayType1”,“displayType2”等。但是,这种语法似乎不起作用,可能是因为编译和链接阶段之间存在差异。 Here是在指令内切换html模板的示例。但是,有没有一种方法可以切换指令,并保持其模块化?
最佳答案
根据@ CodeGuy2001建议添加解决方案。
这里采用的方法是为每个指令变体创建一个具有不同模板名称的 Angular 模板。
然后使用ng-include
选择需要使用的模板。由于ng-include
支持将数据绑定(bind)到src
属性。您可以动态切换模板,从而动态切换指令。
观看 fiddle 的 Action http://jsfiddle.net/xpKwb/2/
关于angularjs - 有条件的指令选择,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18661825/