2016-08-22 89 views
2

如何清除范围变量,如果我将它传递到功能,无需从$范围调用它?AngularJS除去范围变量函数

// 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> 

所以我希望能有完全隔离功能

回答

2

你将能够从$scope删除属性的唯一方法是通过delete。如果您需要动态地引用对象(即$scope)和属性,尝试将键作为一个字符串,如

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

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

好吧,我看到的。谢谢! – user256968

+0

@NG我已经添加了更多*“隔离”*示例 – Phil