feat(view): introduce free embedded views

Free embedded views are view instances that are created
logically in the same was as views of a ViewContainer,
but their dom nodes are not attached.

BREAKING CHANGE:

- `Renderer.detachFreeHostView` was renamed to
  `Renderer.detachFreeView`
- `DomRenderer.getHostElement()` was generalized into
  `DomRenderer.getRootNodes()`
This commit is contained in:
Tobias Bosch
2015-06-03 11:02:51 -07:00
parent 9ce0870f6c
commit 5030ffb01c
10 changed files with 230 additions and 32 deletions

View File

@ -40,17 +40,16 @@ export function main() {
});
}));
it('should create and destroy free host views',
it('should create and destroy free views',
inject([AsyncTestCompleter, DomTestbed], (async, tb) => {
tb.compiler.compileHost(someComponent)
.then((hostProtoViewDto) => {
var view = new TestView(tb.renderer.createView(hostProtoViewDto.render));
var hostElement = tb.renderer.getHostElement(view.viewRef);
var hostElement = tb.renderer.getRootNodes(view.viewRef)[0];
DOM.appendChild(tb.rootEl, hostElement);
tb.renderer.detachFreeHostView(null, view.viewRef);
tb.renderer.detachFreeView(view.viewRef);
expect(DOM.parentElement(hostElement)).toBeFalsy();
async.done();
});
}));