refactor(compiler): use the new compiler everywhere
Closes #3605 BREAKING CHANGE: - we don't mark an element as bound any more if it only contains text bindings E.g. <div>{{hello}}</div> This changes the indices when using `DebugElement.componentViewChildren` / `DebugElement.children`. - `@Directive.compileChildren` was removed, `ng-non-bindable` is now builtin and not a directive any more - angular no more adds the `ng-binding` class to elements with bindings - directives are now ordered as they are listed in the View.directives regarding change detection. Previously they had an undefined order. - the `Renderer` interface has new methods `createProtoView` and `registerComponentTemplate`. See `DomRenderer` for default implementations. - reprojection with `ng-content` is now all or nothing per `ng-content` element - angular2 transformer can't be used in tests that modify directive metadata. Use `angular2/src/transform/inliner_for_test` transformer instead.
This commit is contained in:
@ -161,6 +161,17 @@ void noChangeDetectorTests() {
|
||||
_formatThenExpectEquals(output, expected);
|
||||
});
|
||||
|
||||
it('should generate getters for Directive#events.', () async {
|
||||
var inputPath =
|
||||
'template_compiler/directive_event_files/hello.ng_deps.dart';
|
||||
var expected = readFile(
|
||||
'template_compiler/directive_event_files/expected/hello.ng_deps.dart');
|
||||
var output = await process(new AssetId('a', inputPath));
|
||||
_formatThenExpectEquals(output, expected);
|
||||
output = await process(new AssetId('a', inputPath));
|
||||
_formatThenExpectEquals(output, expected);
|
||||
});
|
||||
|
||||
// TODO(kegluenq): Before committing, should this test be removed or just
|
||||
// modified to check something different, maybe the created template code?
|
||||
xit('should generate all expected getters, setters, & methods.', () async {
|
||||
|
@ -0,0 +1,20 @@
|
||||
library examples.hello_world.index_common_dart.ng_deps.dart;
|
||||
|
||||
import 'hello.dart';
|
||||
import 'package:angular2/angular2.dart'
|
||||
show Component, Directive, View, NgElement;
|
||||
|
||||
var _visited = false;
|
||||
void initReflector(reflector) {
|
||||
if (_visited) return;
|
||||
_visited = true;
|
||||
reflector
|
||||
..registerType(
|
||||
HelloDirective,
|
||||
new ReflectionInfo(const [
|
||||
const Directive(selector: 'hello', outputs: const ['eventName'])
|
||||
], const [
|
||||
const []
|
||||
], () => new HelloDirective()))
|
||||
..registerGetters({'eventName': (o) => o.eventName});
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
library examples.hello_world.index_common_dart.ng_deps.dart;
|
||||
|
||||
import 'hello.dart';
|
||||
import 'package:angular2/angular2.dart'
|
||||
show Component, Directive, View, NgElement;
|
||||
|
||||
var _visited = false;
|
||||
void initReflector(reflector) {
|
||||
if (_visited) return;
|
||||
_visited = true;
|
||||
reflector
|
||||
..registerType(
|
||||
HelloDirective,
|
||||
new ReflectionInfo(const [
|
||||
const Directive(selector: 'hello', outputs: const ['eventName'])
|
||||
], const [
|
||||
const []
|
||||
], () => new HelloDirective()));
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
{
|
||||
"HelloCmp":
|
||||
{
|
||||
"kind": "type",
|
||||
"value": {
|
||||
"isComponent": false,
|
||||
"dynamicLoadable": true,
|
||||
"selector":"hello-app",
|
||||
"exportAs": null,
|
||||
"type": {
|
||||
"id": 1,
|
||||
"name": "HelloCmp",
|
||||
"moduleUrl": "asset:angular2/test/transform/template_compiler/directive_event_files/hello.dart"
|
||||
},
|
||||
"changeDetection": 5,
|
||||
"properties": {},
|
||||
"outputs": {"eventName": "eventName"},
|
||||
"hostListeners": {},
|
||||
"hostProperties": {},
|
||||
"hostAttributes": {},
|
||||
"lifecycleHooks": [],
|
||||
"template": {
|
||||
"encapsulation": 0,
|
||||
"template": "<button>go</button>",
|
||||
"templateUrl": null,
|
||||
"styles": null,
|
||||
"styleUrls": null,
|
||||
"ngContentSelectors": null
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user