Watch for CRUD state changes and make sure only one is active at once
I assume that when you say that you want your code to be "dried" up, you want your code to be more DRY, right?

Well right now, you are doing quite a bit of repeating: you've created individual conditional statements for each property of an object.

Your code would be much more DRY if you iterated through the object and checked the properties as you iterated.

Since we are handling an object, let's use a for/in loop:

for(var i in $scope.actions) {

}


In every conditional statement that you wrote, you checked to see if a property was equal to true.

That should be the first thing we check here:

for(var i in $scope.actions) {
    if($scope.actions[i])

    }
}


Notice how there is no === true at the end of the conditional? JavaScript already checks to see if the conditional reduces to true automatically.

Now we have to find a way to set the other two values in the object to false in a DRY way.

I think it would be best to create a function that takes in one argument that is the name of the property that should not be set to false, and then the function sets the other properties to false

That would look like this:

function setPropertiesToFalse(obj, except) {
    for(var i in obj) {
        if(i != except) {
            obj[i] = false;
        }
    }
}


Now the main code would look like this:

for(var i in $scope.actions) {
    if($scope.actions[i]) {
        setPropertiesToFalse($scope.actions, i);
        break;
    }
}


I added a break statement into your code because the original code uses if/else, so if a conditional were to pass, the rest would not be checked.