我有一个指令:
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
值为空。为什么?我的控制器确实:
dataFactory.getCanApproveFor().then(function(data) {
$scope.can_approve_for = data;
});
因此,我能够在页面上看到该值,但该指令未显示该值。我假设它是一个计时/刷新的东西,但是这个指令在ng-repeat
的其他地方工作,因为ng-repeat
在hte对象已经设置之后进行评估,我想。在这种情况下我该怎么做?
答案 0 :(得分:1)
您实际上并未将ActorDisplayDirective
声明为指令。它只是一个普通的函数,它返回一个看起来像指令的对象。
你必须告诉angular它是一个如此指令:
angular.module('someModule', [])
.directive('actorDisplay', function () {
return {
replace: false,
restrict: 'AE',
scope: {
actor: "="
},
templateUrl: staticContext + '/angular-app/templates/actor-display-template.html',
link: function (scope, elem, attrs) {
},
}
})