refactor(change_detection): removed global change detection objects so it is possible to override pipe registry

This commit is contained in:
vsavkin
2015-04-13 09:50:02 -07:00
parent 233cb0f96a
commit 5408abca68
9 changed files with 35 additions and 29 deletions

View File

@ -5,6 +5,7 @@ import {KeyValueChangesFactory} from './pipes/keyvalue_changes';
import {NullPipeFactory} from './pipes/null_pipe';
import {DEFAULT} from './constants';
import {ChangeDetection, ProtoChangeDetector} from './interfaces';
import {Injectable} from 'angular2/di';
export var defaultPipes = {
"iterableDiff" : [
@ -17,6 +18,10 @@ export var defaultPipes = {
]
};
/**
* @exportedAs angular2/change_detection
*/
@Injectable()
export class DynamicChangeDetection extends ChangeDetection {
registry:PipeRegistry;
@ -30,6 +35,10 @@ export class DynamicChangeDetection extends ChangeDetection {
}
}
/**
* @exportedAs angular2/change_detection
*/
@Injectable()
export class JitChangeDetection extends ChangeDetection {
registry:PipeRegistry;
@ -43,18 +52,4 @@ export class JitChangeDetection extends ChangeDetection {
}
}
var _registry = new PipeRegistry(defaultPipes);
/**
* Implements dynamic change detection. See: [ChangeDetection] for more details.
*
* @exportedAs angular2/change_detection
*/
export var dynamicChangeDetection = new DynamicChangeDetection(_registry);
/**
* Implements just-in-time change detection. See: [ChangeDetection] for more details.
*
* @exportedAs angular2/change_detection
*/
export var jitChangeDetection = new JitChangeDetection(_registry);
export var defaultPipeRegistry = new PipeRegistry(defaultPipes);

View File

@ -1,8 +1,10 @@
import {List, ListWrapper} from 'angular2/src/facade/collection';
import {isBlank, isPresent, BaseException, CONST} from 'angular2/src/facade/lang';
import {Pipe} from './pipe';
import {Injectable} from 'angular2/di';
import {ChangeDetectorRef} from '../change_detector_ref';
@Injectable()
export class PipeRegistry {
config;

View File

@ -5,7 +5,7 @@ import {BrowserDomAdapter} from 'angular2/src/dom/browser_adapter';
import {DOM} from 'angular2/src/dom/dom_adapter';
import {Compiler, CompilerCache} from './compiler/compiler';
import {Reflector, reflector} from 'angular2/src/reflection/reflection';
import {Parser, Lexer, ChangeDetection, dynamicChangeDetection, jitChangeDetection} from 'angular2/change_detection';
import {Parser, Lexer, ChangeDetection, DynamicChangeDetection, PipeRegistry, defaultPipeRegistry} from 'angular2/change_detection';
import {ExceptionHandler} from './exception_handler';
import {TemplateLoader} from 'angular2/src/render/dom/compiler/template_loader';
import {TemplateResolver} from './compiler/template_resolver';
@ -113,7 +113,8 @@ function _injectorBindings(appComponentType): List<Binding> {
Compiler,
CompilerCache,
TemplateResolver,
bind(ChangeDetection).toValue(dynamicChangeDetection),
bind(PipeRegistry).toValue(defaultPipeRegistry),
bind(ChangeDetection).toClass(DynamicChangeDetection),
TemplateLoader,
DirectiveMetadataReader,
Parser,

View File

@ -2,7 +2,8 @@ import {bind} from 'angular2/di';
import {Compiler, CompilerCache} from 'angular2/src/core/compiler/compiler';
import {Reflector, reflector} from 'angular2/src/reflection/reflection';
import {Parser, Lexer, ChangeDetection, dynamicChangeDetection} from 'angular2/change_detection';
import {Parser, Lexer, ChangeDetection, DynamicChangeDetection,
PipeRegistry, defaultPipeRegistry} from 'angular2/change_detection';
import {ExceptionHandler} from 'angular2/src/core/exception_handler';
import {TemplateLoader} from 'angular2/src/render/dom/compiler/template_loader';
import {TemplateResolver} from 'angular2/src/core/compiler/template_resolver';
@ -90,7 +91,8 @@ function _getAppBindings() {
Compiler,
CompilerCache,
bind(TemplateResolver).toClass(MockTemplateResolver),
bind(ChangeDetection).toValue(dynamicChangeDetection),
bind(PipeRegistry).toValue(defaultPipeRegistry),
bind(ChangeDetection).toClass(DynamicChangeDetection),
TemplateLoader,
DynamicComponentLoader,
DirectiveMetadataReader,