AngularJS - ¿Cambiar el controlador por condición?

Tengo un formulario simple con datos que resumen los elementos presionados (mediante adición)

(JSBIN)

(700 = 300 + 400)

La forma está delimitada conng-controller="OrderFormController"

Que inturn tiene este método:

$scope.total = function(){

        var total = 0;
        angular.forEach($scope.services, function(s){
            if (s.active){
                total+= s.price;
            }
        });

        return total;
    };

Todo bien.

Pero mira en la parte superior si la imagen, hay una casilla de verificación.

Cuando esté marcada, quiero hacer.cálculo totalmente diferente dentro$scope.total

Digamos, en lugar deadición - hacermultiplicación :

$scope.total = function(){

        var total = 1;
        angular.forEach($scope.services, function(s){
            if (s.active){
                total*= s.price;
            }
        });

        return total;
    };

Por supuesto, podría verificar dentro del método si la casilla está marcada, pero no quiero hacer eso.

Pregunta

Cuál es elCorrecto forma (soy principiante) de limitarlo a un método diferente (de acuerdo conchecked/unchecked)?

Respuestas a la pregunta(3)

Su respuesta a la pregunta