我有一个指令:角指令范围为空
var ActorDisplayDirective = function() {
return {
replace : false,
restrict : 'AE',
scope : {
actor : "="
},
templateUrl: staticContext + '/angular-app/templates/actor-display-template.html',
link : function(scope, elem, attrs) {
},
}
};
这工作正常,在某些地方,而不是其他。这里是我的代码,以显示它在那里不工作:
<p>CAP: {{can_approve_for}}</p>
<p>
Actor display template:
<span actor-display actor='can_approve_for'></span>
After template
</p>
的CAP: ...
显示数据,指令的actor
值为null。为什么?我的控制器有:
dataFactory.getCanApproveFor().then(function(data) {
$scope.can_approve_for = data;
});
所以,我能够看到页面上的值,但指令不显示它。我假设它是一个时间/更新的东西,但是这个指令在ng-repeat
的其他地方工作,因为在hte对象已经设置之后,ng-repeat
会计算。我如何在这种情况下做到这一点?
是'can_approve_for'原始或对象?也许尝试使用'controllerAs'而不是'$ scope',看看你是否可以这样修复它 – elclanrs
这是一个对象,我不知道'controllerAs'是什么 – mikeb
不鼓励使用'$ scope',''''''''''首选的方式。请参阅https://docs.angularjs.org/api/ng/directive/ngController。但是,你可以发布演示来重现你的问题吗?如果我们可以看到它失败,测试它会更容易 – elclanrs