refactor(change_detection): removed global change detection objects so it is possible to override pipe registry
This commit is contained in:
@ -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);
|
@ -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;
|
||||
|
||||
|
5
modules/angular2/src/core/application.js
vendored
5
modules/angular2/src/core/application.js
vendored
@ -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,
|
||||
|
@ -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,
|
||||
|
Reference in New Issue
Block a user