N G N G - 3 months ago 29
AngularJS Question

AngularJS remove scope variable in function

How to remove scope variable if I pass it into function without calling it from $scope?

// controller
$scope.user_id = 1;

$scope.example = function(uid) {
// remove $scope.user_id without accessing it like a scope
// smth like

uid = null; // won't work
};

// html
<div ng-click="example(user_id)">Click me!</div>


So I want to have completely isolated function

Answer

The only way you're going to be able to remove the property from $scope is via delete. If you need to dynamically reference the object (ie $scope) and the property, try passing the key as a string, eg

ng-click="example(this, 'user_id')"

and

$scope.example = function(scope, key) {
    delete scope[key];
};