mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
fix(react2angular): Fixed react to angular wrapper watching function expressions causing infinte digest loop, fixes #16194 (#16196)
This commit is contained in:
parent
7c81f4dfd8
commit
8ef1c75aa1
@ -110,20 +110,23 @@ function watchProps(watchDepth, scope, watchExpressions, listener) {
|
|||||||
|
|
||||||
const watchGroupExpressions = [];
|
const watchGroupExpressions = [];
|
||||||
|
|
||||||
watchExpressions.forEach(expr => {
|
for (const expr of watchExpressions) {
|
||||||
const actualExpr = getPropExpression(expr);
|
const actualExpr = getPropExpression(expr);
|
||||||
const exprWatchDepth = getPropWatchDepth(watchDepth, expr);
|
const exprWatchDepth = getPropWatchDepth(watchDepth, expr);
|
||||||
|
|
||||||
|
// ignore empty expressions & expressions with functions
|
||||||
|
if (!actualExpr || actualExpr.match(/\(.*\)/) || exprWatchDepth === 'one-time') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (exprWatchDepth === 'collection' && supportsWatchCollection) {
|
if (exprWatchDepth === 'collection' && supportsWatchCollection) {
|
||||||
scope.$watchCollection(actualExpr, listener);
|
scope.$watchCollection(actualExpr, listener);
|
||||||
} else if (exprWatchDepth === 'reference' && supportsWatchGroup) {
|
} else if (exprWatchDepth === 'reference' && supportsWatchGroup) {
|
||||||
watchGroupExpressions.push(actualExpr);
|
watchGroupExpressions.push(actualExpr);
|
||||||
} else if (exprWatchDepth === 'one-time') {
|
|
||||||
//do nothing because we handle our one time bindings after this
|
|
||||||
} else {
|
} else {
|
||||||
scope.$watch(actualExpr, listener, exprWatchDepth !== 'reference');
|
scope.$watch(actualExpr, listener, exprWatchDepth !== 'reference');
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
|
||||||
if (watchDepth === 'one-time') {
|
if (watchDepth === 'one-time') {
|
||||||
listener();
|
listener();
|
||||||
|
Loading…
Reference in New Issue
Block a user