Cómo acceder al alcance desde la devolución de llamada asíncrona

Debe parecer realmente simple, pero no tengo idea de cómo acceder a $ scope desde una función asíncrona. Con lo siguiente, no udpate $ scope.result hasta que vuelva a cargar la pestaña manualmente.

.controller('DashCtrl', function ($scope, Camera) {
    $scope.getBarcode = function () {
        cordova.plugins.barcodeScanner.scan(function (result) {
            $scope.result = result.text;
        }, function (error) {
            //alert("Scanning failed: " + error);
        });
    };
}

¿Me podría decir cómo proceder?

Gracias !

Respuestas a la pregunta(2)

Su respuesta a la pregunta