角度指令范围为空
Angular directive scope is empty
我有一个指令:
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
其他地方有效,因为ng-repeat
在对象已经设置后进行评估,我猜。 在这种情况下,我该怎么做?
您实际上并没有将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) {
},
}
})
相关文章:
- 如何使用ngrepeat和双向绑定获得指令的隔离范围
- AngularJS:带有HTML和angular表达式的指令;编译”;具有外部范围的内容
- AngularJS指令范围约束问题重复出现
- 在 Angular 指令中,如何进行回调,其中函数名称位于父范围的变量中
- 对于使用传递的数据计算的局部范围变量,角度绑定在自定义指令中不起作用
- AngularJS:从控制器访问特定的指令范围
- AngularJS:从指令设置范围变量
- AngularJS在指令模板中修改范围
- 基于范围数据更改指令模板中的元素
- 如果指令包含在另一个指令中,我如何在隔离范围内添加双向数据绑定属性
- 日期-时间范围指令字段未显示任何值
- 从父控制器传递工厂数据以隔离范围指令
- 从子元素访问范围指令
- AngularJS在父级和子级范围指令之间共享数据
- 隔离范围指令会导致业力错误
- 范围$指令中的watch't在AJAX请求后被调用
- 如何在AngularJS中对隔离范围指令进行单元测试
- AngularJS隔离范围指令
- 从隔离范围指令中的更改更改控制器变量值
- 美元的范围.指令中的项未定义