由于我的代码模式,我必须一次又一次地将手表应用于同一个变量。这是否会导致任何性能问题或内存泄漏。我的代码中有两个手表,如果第一个手表有任何变化,它会调用一个函数,将手表再次应用于同一个变量。我的代码如下所示,当添加一个名为 .sameHeight 的新类时,watch 再次应用于实际高度。我想知道这是否会导致任何内存泄漏或性能问题..如果是的话如何解决这个..
.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();
});