0
在下面的代码中,我有一个指令,每次输入字段x
被更改时计算变量y
。变量y
已公开,因此可用于声明控制器/指令。这工作正常,但它是一个简单的抽象,在我真实的情况下,y
的计算是非常昂贵的,所以我不能计算y
每次x
更改。理想情况下,只有在声明控制器/指令需要时才会计算y
。有没有办法实现这一点?从指令返回变量而不是暴露示波器
var app = angular.module('app', []);
app.controller('ctl', function() {
});
app.directive("theDirective", function() {
return {
restrict: "AE",
scope: {
y: '='
},
template: '<input ng-model="x" ng-change="xChanged()" />',
link: function (scope, element, attrs) {
scope.xChanged = function() {
scope.y = scope.x * 2;
};
}
}
});
谢谢,但我需要的功能的指令,以从父叫,而不是从编辑我的答案,包括场景,以及一个孩子 – ps0604
。 –
这种方法存在问题。由于'$ broadcast'是异步的,如果子进程中的函数需要时间来处理,则父进程不知道何时结束,因此它不能从该作用域中获取该变量。 – ps0604