【问题标题】:Angular JS ng-switch not workingAngular JS ng-switch 不起作用
【发布时间】:2016-10-11 12:57:28
【问题描述】:

我正在使用 Laravel 和 Angular JS 开发一个应用程序。 我正在使用 [[ ]] 进行数据绑定。

在使用 ng-switch 绑定表中的数据时出现错误并且无法正常工作。

 <tr ng-repeat="category in categories">
            <td>[[category.Name]]</td>
            <td>[[category.ListOrder]]</td>
            <td ng-switch="category.Status">
              <img ng-switch-when="1" src="{{URL::asset('public/assets/images/icons/ic_active.png')}}"></td>
              <img ng-switch-when="0" src="{{URL::asset('public/assets/images/icons/ic_inactive.png')}}"></td>
            <td>
              <img src="{{URL::asset('public/assets/images/icons/ic_inactive.png')}}">
            </td>
            <td>[[category.updated_at]]</td>
</tr>

当我使用 Firebug 检查时,响应状态变量获取字符串值 1 和 0。

我该如何解决这个问题......

我正在使用 Angular JS v1.5.8

控制台出错..

 Error: [$compile:ctreq] http://errors.angularjs.org/1.5.8/$compile/ctreq?p0=ngSwitch&p1=ngSwitchWhenN/<@http://localhost/repos/p3-laravel/ppp_admin/public/js/angular.min.js:6:412

【问题讨论】:

  • “出现错误且无法正常工作” – 你能用更具体的术语来表达吗?错误消息是什么,正在发生什么,您预计会发生什么?
  • @deceze 编辑的问题出现控制台错误。
  • @JpDevs 你可以使用未缩小版的 AngularJS 吗?看来您使用的是缩小版
  • @K3v1n 现在我检查 unminified cdn,现在显示错误,如错误:[$compile:ctreq] Controller 'ngSwitch', required by directive 'ngSwitchWhen', can't be found!
  • @JpDevs 它似乎没有找到父 ng-switch

标签: javascript angularjs laravel-5.3 ng-switch angularjs-ng-switch


【解决方案1】:
<td ng-switch="category.Status">
    <img ng-switch-when="1" ...></td>
    <img ng-switch-when="0" ...></td>

您在第一个img 之后过早关闭&lt;/td&gt;,第二个img&lt;td&gt; 之外,因此也在ng-switch 的范围之外。该错误是由ng-switch-when="0" 无法找到父ng-switch 引起的。

【讨论】:

  • 感谢老兄的通知。在这上面花了两个小时。
  • FWIW,正确的 HTML 格式可以很容易地阻止这种情况(&lt;/td&gt; 不在同一行,并保持你的行更短)。
猜你喜欢
  • 1970-01-01
  • 2016-04-04
  • 2018-04-30
  • 1970-01-01
  • 2016-12-01
  • 1970-01-01
  • 2014-11-30
  • 1970-01-01
  • 2016-01-20
相关资源
最近更新 更多