a8m / a8m/angular-filter

Cache no longer works (angular >= 1.3)

未關閉
#157 1 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
JavaScript
星號
2.9k
分支
319
PR 合併指標
30 天內沒有已合併 PR

描述

Hey all,

Because of this line from Angular 1.2:

``` javascript
return fn.apply(self, args);
```

https://github.com/angular/angular.js/blob/g3_v1_2/src/ng/parse.js#L595

Was changed to this line in Angular 1.3:

``` javascript
return fn.apply(undefined, args);
```

https://github.com/angular/angular.js/blob/g3_v1_3/src/ng/parse.js#L568

`this` in all the filters is no longer linked to the scope that called the filter and therefor **filterWatcher** gets `scope=undefined` which causes `isScope(scope)` to always return `false` which in turn causes `cleanStateless()` to get called after every filter call, `cleanStateless()` cleans the cache.

The consequence is major performance issues and slowdown on every $digest cycle (which re-evaluates the filter output even though the input did not change).

貢獻指南

這個儲存庫沒有索引到貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。