javascript - ng-repeat 内的 ng-switch 不起作用

标签 javascript html angularjs

我的数据基本上可以归结为:

function ExampleCtrl($scope) {
    $scope.myData= [
        {text: "blah", other: 3, V: 'caseOne'},
        {text: "blah", other: 3, V: 'caseTwo'},
        {text: "blah", other: 3, V: 'caseThree'}
    ];
}

这是这样使用的:

<div ng-controller="ExmapleCtrl">
    <table> 
       <tr> 
           <td>Text</td>
           <td>Other</td>
           <td>V</td>
       </tr>
       <tr ng-repeat="data in myData">
           <td><a href="#">{{data.text}}</a></td>
           <td>{{data.other}}</td>
           <td ng-switch on="data.V">
               <td ng-switch-when="caseOne"><img src="assets/img/pass.png"/></td>
               <td ng-switch-when="caseTwo"><img src="assets/img/pass.png"/></td>
               <td ng-switch-when="caseThree"><img src="assets/img/fail.png"/></td>
           </td>
    </table>
</div>

问题是我收到了这个错误:

Error: No controller: ngSwitch..

我显然已经将 Controller 设置为 ExampleCtrl,我没有看到任何输入错误,所以很遗憾我不知所措。

最佳答案

我认为这个问题与 ng-switch 产生无效标记有关。我不确定您是否可以将一个 td 嵌套在另一个 td 中。不管怎样,如果你把它改成这样它就会起作用:

 <td ng-switch on="data.V">
           <img src="assets/img/pass.png"  ng-switch-when="caseOne"/>
           <img src="assets/img/pass.png" ng-switch-when="caseTwo"/>
           <img ng-switch-when="caseThree" src="assets/img/fail.png"/>
       </td>

这是一个工作演示:http://plnkr.co/edit/zUdkJYfnlJul6HsyCGfZ

我将继续并建议一些不使用可能更好一点的开关的解决方案。查看最后两个 td

 <tr ng-repeat="data in myData">
           <td><a href="#">{{data.text}}</a></td>
           <td>{{data.other}}</td>

            <td>
               <img src='assets/img/{{data.V}}.png' />  <!-- assuming you have an image with name caseOne.png/caseTwo.png/etc -->
           </td>
           <td>
             <img src='{{passFail[data.V]}}' />   <!-- transform the case stuff to pass/fail based on some business rules, this is an object but could be a function-->
           </td>
      </tr>

$scope.passFail = {
  'caseOne' : 'assets/img/pass.png',
  'caseTwo' : 'assets/img/pass.png',
  'caseThree' : 'assets/img/fail.png'
};

关于javascript - ng-repeat 内的 ng-switch 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16674056/

相关文章:

html - Rails 将背景 css 添加到匹配结果

couchdb - angularjs跨域访问couchdb的方法

javascript - 如何获取我在表格中勾选的所有详细信息?

javascript - 如何在 Google Chrome 扩展中获取 Node.js 进程的调试目标信息?

javascript - 将 css "display:none"值替换为“显示 :flex using js

javascript - 使用 React-Router 在页面内链接

javascript - 获取请求查询字符串 Node

html - 将标题内的跨度向右对齐

javascript - requireJS 会减慢使用 Angular 框架编写的 cordova 应用程序的速度吗?

Javascript:迭代对象并连接字符串