0
我的應用程序中有一個內存泄漏,這是因爲元素範圍沒有被銷燬。
用於字段以下:
vm.fields.data.directions = [
{
type: 'required-textarea',
key: 'step',
templateOptions:{
label: 'Directions',
placeholder: 'Wrap a bacon piece around each spear; secure ends with a toothpick.'
},
expressionProperties: {
'link' : function($viewValue, $modelValue, scope){
scope.$on('$destroy', function() {
$timeout(function() {
console.log(scope);
}, 100);
});
}
}
此遊戲機出與多個觀察者完全不變一個範圍。對於我的應用程序,我有多個選項卡用於不同的表單域輸入,其中一些包含上述參考字段中的大約20個。每當選項卡導航並再次單擊時,應用程序觀察程序計數將繼續增加,因爲範圍永遠不會被破壞。
爲什麼在銷燬被調用後範圍存在?
被銷燬的範圍是真實的;但是所有的觀察者都存在,並且在應用程序的整個生命週期內都不會被刪除。 – byrdr
你是怎麼確定的?您是否嘗試過這個腳本:https://medium.com/@kentcdodds/counting-angularjs-watchers-11c5134dc2ef#.l3h1whyzg –
我添加了一個超時以防萬一。我正在看batarang。觀察者數量增加了與正在銷燬的範圍內安慰的觀察者數量相同的觀察者數量。 – byrdr