It is crucial that your loop finishes before setting bulkUpdateCheck to true.
The issue lies in the "multiple calls" you are making, which could be asynchronous. Therefore, everything inside your loops must conclude.
If there are async calls within your forEach, consider the following approach:
async function bulkUpdate(curritems) {
$scope.bulkUpdateCheck = true;
let multipleCalls = [] //this array will store all promises
angular.forEach(curritems, function (item) {
//modify this to suit the promise being used
const promise = Promise.resolve(3);
multipleCalls.push(promise)
});
await Promise.all(multipleCalls)
$scope.bulkUpdateCheck = false;
}