2016-08-22 91 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