我试过这个:
for (var prop in $rootScope) {
console.log($rootScope[prop])
if (prop.substring(0,1) !== '$') {
delete $rootScope[prop];
}
console.log($rootScope[prop])
}
for (var prop in $scope) {
console.log($scope[prop])
if (prop.substring(0,1) !== '$') {
delete $scope[prop];
}
console.log($scope[prop])
}
但我最终删除了所有与scope相关的变量和函数。我希望能够删除所有的变量/数据,而不是函数,因为我必须处理大量的数据,这会减慢我的应用程序。
此外,请告诉我是否有其他方法来处理这样的问题。
使用typeof
运算符检查属性not是否为函数。您还应该检查以角度$$
为前缀的变量,如$$destroyed
、$$isolateBindings
等。这只返回(据我所测试)用户定义的变量(=您分配给$scope
的变量,仅此而已):
for (var prop in $scope) {
if (typeof $scope[prop] !== 'function' &&
prop.indexOf('$') == -1 &&
prop.indexOf('$$') == -1) {
//delete here
}
}