Javascript 当属性位于多个元素上时,是否可以放置ng开关?

Javascript 当属性位于多个元素上时,是否可以放置ng开关?,javascript,angularjs,ng-switch,Javascript,Angularjs,Ng Switch,我试图在设置某个索引时使用显示特定元素来切换元素 ng开关正在工作,只是它只显示最后一个开关语句 使用此代码时,我仅显示“Frame 2”div: <div ng-switch="frame"> <div ng-switch-when="1">Frame 1</div> <span>Some permanent text</span> <span ng-switch-when="2">Text relevant

我试图在设置某个索引时使用显示特定元素来切换元素

ng开关
正在工作,只是它只显示最后一个开关语句

使用此代码时,我仅显示“Frame 2”div:

<div ng-switch="frame">
  <div ng-switch-when="1">Frame 1</div>
  <span>Some permanent text</span>
  <span ng-switch-when="2">Text relevant to frame 2</span>
  <div ng-switch-when="2">Frame 2</div>
</div>

第1帧
一些永久性文本
与第2帧有关的案文
第2帧
frame
设置为2时,我希望上面显示所有
开关

注意:标记不能更改

  • 我该怎么做
  • 如果我不能,有没有更好的/不同的选择
嵌套标记:

<div ng-switch="frame">
    <div ng-switch-when="1">Frame 1</div>
    <span>Some permanent text</span>
    <div ng-switch-when="2">
        <span>Text relevant to frame 2</span>
        <div>Frame 2</div>
    </div>
</div>

我认为安德烈·迪翁提到的嵌套是一个更干净的解决方案,但是如果你需要这种格式,你可以使用ng if代替。这需要角度1.1.5+

<div>
  <div ng-if="frame==1">Frame 1</div>
  <span>Some permanent text</span>
  <span ng-if="frame==2">Text relevant to frame 2</span>
  <div ng-if="frame==2">Frame 2</div>
</div>

第1帧
一些永久性文本
与第2帧有关的案文
第2帧
文件:


编辑:虽然ng show只会隐藏元素,但ng if会将其从DOM中完全删除。

我不能,这些元素需要按原样显示。除非您修改
ng开关的行为,否则这是使用该指令执行操作的唯一方法。否则,请使用
ng show
。基本上您所说的是
ng开关
不是这样工作的:(如果您在回答中指出这一点,我会将其标记为已接受。我已使用
ng show
更新了我的回答,以提供一个替代解决方案。太棒了,这可能就可以了。谢谢!谢谢,我正要问有什么区别。我还在文档中查找了它。我只需要
ng show
,但这对任何可能的人都是好的。)遇到这种情况。如何访问“隐藏”元素。我通常在web inspector中的DOM上看不到它,因此我希望确保如果尝试访问它,我可以修改隐藏的元素。
<div>
  <div ng-if="frame==1">Frame 1</div>
  <span>Some permanent text</span>
  <span ng-if="frame==2">Text relevant to frame 2</span>
  <div ng-if="frame==2">Frame 2</div>
</div>