AngularJS / IonicFramework prevent multiple API calls on toggle

I've read this and am trying to implement similar functionality

"If you’re using toggle buttons, e.g.: to turn something on and off and it hits an API endpoint, be sure to wrap that interaction in a timer so you’re not calling that endpoint multiple times if the user decides to tap the control multiple times in quick succession. Wait a second, then hit the endpoint."

I have a settings page with a series of toggle switches. Rather than do an API call at the change of each and every toggle I want to delay the API call that passes the value of the scope to my server. I want to delay it by X seconds. However, by doing this

    $scope.settingsChange = function () {

        $timeout(function () {
            //save_notifications
            console.log('called');
           // Trigger API call
        }, 3000);
    };

All that's happening its just delaying the call by 3000ms. I still get the console log appear 3 times if I toggle something 3 times.

I'm fully aware this is because I've implemented a timeout function. I'm not sure what to implement to get the functionality the poster alludes to in my quote above.

Any ideas much appreciated.

Thanks,

Note: my template looks like this

        <ion-toggle ng-repeat="item in settingsData"
                    ng-model="item.checked"
                    ng-checked="item.checked"
                    ng-change="settingsChange()">
            {{ item.text }}
        </ion-toggle>

once you initiate the API call, block any other calls from being made.

$scope.settingsChange = function () {

  if ($scope.processingSettingChange) return;
  $scope.processingSettingChange = true;

    $timeout(function () {
        //save_notifications
        console.log('called');
       // Trigger API call
       $scope.processingSettingChange = false;
    }, 3000);
};

you might also want to disable the UI while the API is processing the request. You should be able to using the same $scope variable and ng-disabled