diff --git a/modules/directives/src/ng_non_bindable.js b/modules/directives/src/ng_non_bindable.js new file mode 100644 index 0000000000..be0793575c --- /dev/null +++ b/modules/directives/src/ng_non_bindable.js @@ -0,0 +1,8 @@ +import {Decorator} from 'core/annotations/annotations'; + +@Decorator({ + selector: '[ng-non-bindable]', + compileChildren: false +}) +export class NgNonBindable { +} diff --git a/modules/directives/test/ng_non_bindable_spec.js b/modules/directives/test/ng_non_bindable_spec.js new file mode 100644 index 0000000000..3282f75951 --- /dev/null +++ b/modules/directives/test/ng_non_bindable_spec.js @@ -0,0 +1,89 @@ +import {describe, xit, it, expect, beforeEach, ddescribe, iit} from 'test_lib/test_lib'; +import {DOM} from 'facade/dom'; +import {Injector} from 'di/di'; +import {Lexer, Parser, ChangeDetector} from 'change_detection/change_detection'; +import {Compiler, CompilerCache} from 'core/compiler/compiler'; +import {DirectiveMetadataReader} from 'core/compiler/directive_metadata_reader'; +import {Decorator, Component} from 'core/annotations/annotations'; +import {TemplateConfig} from 'core/annotations/template_config'; +import {NgElement} from 'core/dom/element'; +import {NgNonBindable} from 'directives/ng_non_bindable'; + +export function main() { + describe('ng-non-bindable', () => { + var view, cd, compiler, component; + beforeEach(() => { + compiler = new Compiler(null, new DirectiveMetadataReader(), new Parser(new Lexer()), new CompilerCache()); + }); + + function createElement(html) { + return DOM.createTemplate(html).content.firstChild; + } + + function createView(pv) { + component = new TestComponent(); + view = pv.instantiate(null); + view.hydrate(new Injector([]), null, component); + cd = new ChangeDetector(view.recordRange); + } + + function compileWithTemplate(template) { + return compiler.compile(TestComponent, createElement(template)); + } + + it('should not interpolate children', (done) => { + var template = '