Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带静态节点的Angularjs ngSwitch?_Javascript_Angularjs_Angularjs Directive - Fatal编程技术网

Javascript 带静态节点的Angularjs ngSwitch?

Javascript 带静态节点的Angularjs ngSwitch?,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,如何在ngSwitch中拥有一些公共节点 <div ng-controller="MyCtrl"> <div ng-repeat="widget in widgets" ng-switch="" on="widget.foo"> <h1>Test</h1> <p ng-switch-when="bar">Lorem ipsum</p> <small ng-switch-when="

如何在ngSwitch中拥有一些公共节点

<div ng-controller="MyCtrl">
    <div ng-repeat="widget in widgets" ng-switch="" on="widget.foo">
     <h1>Test</h1>
     <p ng-switch-when="bar">Lorem ipsum</p>
     <small ng-switch-when="baz">Lorem ipsum</small>
     <footer>common footer</footer>
    </div>
</div>

试验

Lorem ipsum

乱数假文 公共页脚

switch元素作为模板的最后一个子元素呈现。有没有更好的办法?

试试这个:

<div ng-controller="MyCtrl">
  <div ng-repeat="widget in widgets">
      <h1>Test</h1>
      <div ng-switch on="widget.foo">
          <p ng-switch-when="bar">Lorem ipsum</p>
          <small ng-switch-when="baz">Lorem ipsum</small>
      </div>
      <footer>common footer</footer>
  </div>
</div>

试验

Lorem ipsum

乱数假文 公共页脚

jshiddle.

这实际上是
ng开关
的一个缺陷(甚至是一个bug)。为了利用补丁,您需要使用Angular 1.1.4、1.1.5或1.2.0。否则,你需要像迈克尔·本福德在他的回答中所做的那样包装你的开关箱。是的,我注意到了。使用稳定版本和不稳定版本有什么区别?从第一天开始,我们就一直坚持稳定的发布。我们害怕“不稳定”这个词。我对Angular团队的发布模型并不完全熟悉,但通常“不稳定”意味着任何新特性或API更改都不是“最终”的,可能会发生更改,而在“稳定”的构建中,API保证按照广告的方式工作。它与未测试/错误代码的关系比你想象的要小。是的,我就是这么想的,我只是讨厌得到多余的无用div元素。感谢您提供了有效的解决方案。=)