Функция JS вызывается бесконечно много раз из HTML ng-if и вызывает ошибки.
В моем HTML есть строка
<div ng-if="isCanvasAndFeatureFlagOrStoreTagSet(variant)">
, которая вызывает угловую функцию ниже:
$scope.isCanvasAndFeatureFlagOrStoreTagSet = (variant) => {
if (variant.productCategory.productGroup === 'CANVAS_PRINTS') {
const featureFlagName = 'MULTICOLOR_CANVAS';
var featureFlagSet = false;
return resourceExec({
resource: Features.getFeature({featureName: featureFlagName}),
success: (response) => {
if (response && response.name === featureFlagName && response.enabled) {
featureFlagSet = true;
}
},
failure: (fail) => {
featureFlagSet = false;
}
});
let storeTagSet = $scope.store.tags.indexOf("multicolorcanvas") != -1;
return storeTagSet || featureFlagSet;
} else {
return false;
}
};
, который следует проверять только один раз во время инициализации, а затем один раз в любое время, когда на странице происходит изменение.Тем не менее, в моем случае, когда на страницу вносится начальное изменение (продукт добавлен), вышеупомянутая функция вызывается бесконечное количество раз, вызывая ошибку ниже бесконечного:
Uncaught Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations:
[[{"msg":"isCanvasAndFeatureFlagOrStoreTagSet(variant)","newVal":{},"oldVal":{}},
{"msg":"isCanvasAndFeatureFlagOrStoreTagSet(variant)","newVal":{},"oldVal":{}}],
[{"msg":"isCanvasAndFeatureFlagOrStoreTagSet(variant)","newVal":{},"oldVal":"..."},
{"msg":"isCanvasAndFeatureFlagOrStoreTagSet(variant)","newVal":{},"oldVal":"..."}],[{"msg":"isCanvasAndFeatureFlagOrStoreTagSet(variant)","newVal":{},"oldVal":"..."},{"msg":"isCanvasAndFeatureFlagOrStoreTagSet(variant)","newVal":{},"oldVal":"..."}],[{"msg":"isCanvasAndFeatureFlagOrStoreTagSet(variant)","newVal":{},"oldVal":"..."},{"msg":"isCanvasAndFeatureFlagOrStoreTagSet(variant)","newVal":{},"oldVal":"..."}],[{"msg":"isCanvasAndFeatureFlagOrStoreTagSet(variant)","newVal":{},"oldVal":"..."},{"msg":"isCanvasAndFeatureFlagOrStoreTagSet(variant)","newVal":{},"oldVal":"..."}]]
Как сохранитьэта функция вызывается бесконечное время, как это?