更新范围时不调用 Angular 指令
Angular directive not getting called when scope is updated
我有一个正在修改变量的作用域:
$scope.showContext = function(context) {
$scope.currentContext = context;
....
}
我在页面上有一个指令:
<div org-chart workflow="currentContext" />
我有一个指令:
var OrgChartDirective = function($timeout) {
return {
restrict : 'AE',
scope : {
workflow : '=',
},
link : function(scope, element, attrs) {
if (scope.workflow != null) {
console.log("**________________________________**");
console.log(scope);
} else {
alert("Workflow is null");
}
....
加载页面时,收到工作流为空的警报。
当我运行更新 $scope.currentContext
的范围函数时,没有其他反应。 应该再叫一次吧?
编辑说:我在页面上有这个,它确实表明在我调用 scope 方法后正在设置变量:
Workflow----> {{currentContext.workflow}}
您必须观察/观察链接函数中的属性更改,如下所示:
attrs.$watch('workflow', function() {
//do whatever logic you want
});
在此处阅读有关观察者和观察者以及如何使用它们的更多信息:关于观察者和观察者的本纳达尔教程
试试这个要点:观察者和观察者的要点
听从 charlietfi,尝试使用观察者
link : function(scope, element, attrs) {
scope.$watch('workflow', function(val) {
...
});
相关文章:
- 将JSON对象传递给angular指令
- Angular指令在alertify setContent内容中不起作用
- 在其他javascript框架模板中运行angular指令
- 如何动态禁用Angular指令
- 在 Angular 指令中,如何进行回调,其中函数名称位于父范围的变量中
- Angular指令中的最佳实践是将文本输入设置为英尺和英寸的格式
- 不适用于动态数据的Angular指令来自$http
- 这段jquery代码在angular指令中不起作用
- Angular 指令似乎没有使用元素传入的选项执行
- 带有Angular指令的HTML;附加时无法工作
- 如何使用angular指令从html中获取数组
- 如何正确控制Angular指令的$dirty和$pure状态
- 在 Angular 指令中定义一个用于 ng-click 的函数
- HTML 标记在使用 Angular 指令时被视为纯文本
- 当 Angular 指令的名称真正重要时
- 如何将侦听器添加到 Angular 指令中
- 嵌套的Angular指令触发父对象上的作用域函数
- 在ui路由器中以Webpack块的形式懒惰地加载Angular指令
- 超链接;编译angular指令内的模板后无法工作
- 用angular指令构建嵌套树