Angular js错误:[$compile:ctreq]指令yyyy要求的控制器xxxx,无法找到
Angular js Error: [$compile:ctreq] Controller xxxx, required by directive yyyy, can't be found
我已经在stackoverflow上有多个主题关于这个错误,但我总是不理解我的上下文中的问题。
我有这样的模板:
<div class="progress">
<div class="progress-bar"
data-toggle="tooltip"
title="Parts offertes : {{ '{{ gift.gived_parts}}' }} / {{ '{{ gift.number_of_parts }}' }}"
data-bar="gived"
>
<span ng-class="{true:'op7', false:''}[gift.percent_done > 0 && gift.percent_done < 20]">
{{ '{{ gift.gived_parts}}' }}
</span>
</div>
<div class="progress-bar progress-bar-danger progress-bar-striped progress-bar-animate active op7"
data-toggle="tooltip"
title="Parts réservées : {{ '{{ gift.total_reserved}}' }} / {{ '{{ gift.number_of_parts }}' }}"
data-bar="reserved">
</div>
对于这个指令:
app.directive('progressBarD', function() {
return {
restrict: 'E',
templateUrl: rootUrl + '/directive/progressBar',
scope: {
gift: '=gift'
},
link: function ($scope, $elem, attrs) {
var bars = $elem.find(".progress-bar");
bars.each(function() {
var bar = $(this);
var percent = (bar.context.dataset.bar === "gived")
? $scope.gift.percent_done
: $scope.gift.percent_reserved;
if (($().appear) && isMobileDevice === false && (bars.hasClass("no-anim") === false) ) {
bar.appear(function () {
bar.addClass("progress-bar-animate").css("width", percent + "%");
}, {accY: -150} );
} else {
bar.css("width", percent + "%");
}
});
}
};
});
下面是指令的调用:
<progress-bar-d gift="gift"></progress-bar-d>
在执行过程中,我得到了这个错误:
Error: [$compile:ctreq] Controller 'progress', required by directive 'bar', can't be found!
http://errors.angularjs.org/1.3.15/$compile/ctreq?p0=progress&p1=bar
at angular.js:63
at getControllers (angular.js:7583)
at nodeLinkFn (angular.js:7772)
at angular.js:7998
at processQueue (angular.js:13248)
at angular.js:13264
at Scope.$get.Scope.$eval (angular.js:14466)
at Scope.$get.Scope.$digest (angular.js:14282)
at Scope.scopePrototype.$digest (hint.js:1468)
at Scope.$get.Scope.$apply (angular.js:14571)
在屏幕上,链接功能看起来可以工作,但在结束时,里面的第一个礼物消失了。
你能解释一下为什么我有这个角度误差吗?删除span也是同样的问题吗?
我终于找到问题了。
在angular指令中,我修改了bar.context.dataset.bar,它就工作了。我不知道为什么没有很好地解释,但现在它工作了。
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 从控制器返回后Ajax启动事件激发
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- 如何在单击复选框后调用控制器方法
- 在控制器和数据对象之间同步数据
- 将Javascript数组发送到控制器ASP.NET MVC
- 角度控制器结构
- 如何在Jquery中发布后将值从视图返回到控制器
- 将值从html传递到AngularJS控制器
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- 从控制器继承了隔离的作用域以生成可重用的指令
- Flash Uploadify在调用我的MVC控制器时没有保留会话/授权
- 为什么不't我的变量在我的控制器中填充后在我的视图中呈现
- Nodejs API控制器,用于在API之间切换
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- 将不在模型中的数据返回到mvc控制器
- 未激发路由的控制器属性上的观察者
- 错误405:向Java控制器(Ajax)发送JSON时找不到POST方法
- Angular js错误:[$compile:ctreq]指令yyyy要求的控制器xxxx,无法找到