【问题标题】:AngularJS controller, required by directive, can't be found找不到指令所需的 AngularJS 控制器
【发布时间】:2014-04-09 14:24:21
【问题描述】:

我对每个“消息”都有一个错误

Error: [$compile:ctreq] Controller 'accordion', required by directive 'accordionGroup', can't be found!

在 html 中使用我的代码

<h2 data-ng-if="!!messageData.messages.length">Messages</h2>

<accordion close-others="true">
    <accordion-group data-ng-repeat="m in messageData.messages">
        <accordion-heading>
            <span>{{ m.head }}</span>
            <span class="pull-right">{{ m.created | date:'d-MMM-yyyy HH:mm' }}</span>
        </accordion-heading>
        <p>{{ m.body }}</p>
    </accordion-group>
</accordion>

但消息是没有问题的视图

UPD 1: 我试图调试 angular.js 和函数 getControllers 为“空手风琴组”和“带有 ng-repeat 的手风琴组”返回不同的值,差异是一致的

value = value || $element[retrievalMethod]('$' + require + 'Controller');

“ng-repeat acordion-group”的值未定义,“empty Accordion group”的值不为空

更新完成 我正在将我的 VS2013 更新到 RC2 并解决了问题。

【问题讨论】:

标签: angularjs angularjs-directive angularjs-ng-repeat angular-ui angular-ui-bootstrap


【解决方案1】:

感谢您花时间提供一个 plunkr。我通过排除不需要的库并使用data-ng-xx 表示法对其进行了一些修改。我还使用了适当的方式注入作用域:

['$scope', function($scope){
....
}]

我还将ng-app 放在正文和可能的脚本加载顺序问题之后。这是 Plunkr:

http://plnkr.co/edit/Rftdxz4erSeHT14cp2ID?p=preview

【讨论】:

  • 感谢您的回复,但我仍有问题。尝试在您的系统上使用此代码。我不能保证 plunker 显示有关错误的有效信​​息,因为它是在 plunker 的服务器上处理的。
  • 我在一个简单的网页上使用了相同的代码。它没有给我任何错误。您运行的是哪种浏览器?
  • 我在 Ubuntu 的 Chrome 和 Firefox 中完全做到了这一点,但绝对没有错误。
  • 哦...我将我的 Visual Studio 更新到 RC 2 并解决了问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-15
  • 2017-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多