由于我的代码模式,我必须一次又一次地对同一个变量应用监视。这会导致任何性能问题或内存泄漏。我的代码中有两个手表,如果在第一个手表中有任何变化,它会调用一个函数,该功能将手表再次应用于同一个变量。我的代码如下所示,当添加名为.sameHeight的新类时,watch再次应用于actualHeight。我想知道这是否会导致任何内存泄漏或性能问题..如果是如何解决这个问题..
.directive("sameHeight", function () { //declaration; identifier master
function link(scope, element) { //scope we are in, element we are bound to
var inWatch = false;
var helper = function () {
$(element).find('.sameHeight').each(function () {
var s = angular.element(this).scope();
console.log('element ' + this.id + ' = ');
console.log(s);
scope.$watch(function () { return s.actualHeight; }, function (oldValue, newValue) {
var maxHeight = 0;
// get the max height which can be set.
$(element).find('.sameHeight').each(function () {
var sc = angular.element(this).scope();
if (maxHeight < sc.actualHeight) {
maxHeight = sc.actualHeight;
}
});
// set the interpolated height.
$(element).find('.sameHeight').each(function () {
var scp = angular.element(this).scope();
scp.interpolatedHeight = maxHeight;
});
console.log('max height is = ' + maxHeight);
});
});
};
scope.$watch(function () { return $(element).find('.sameHeight').length; }, function (oldValue, newValue) {
helper();
});