anchor.diff:          parentNode.append(node);
         }
   
  -      if (node.nodeType == dom.Node.ELEMENT_NODE) {
  -        var elts = node.querySelectorAll('.ng-binding');
  -        // querySelectorAll doesn't return the node itself
  -        if (node.classes.contains('ng-binding')) {
  +      if (linkingInfo.isElement) {
  +        if (linkingInfo.containsNgBinding) {
             var tagged = elementBinders[elementBinderIndex];
             _bindTagged(tagged, elementBinderIndex, rootInjector, elementInjectors, view, node);
             elementBinderIndex++;
           }
   
  -        for (int j = 0; j < elts.length; j++, elementBinderIndex++) {
  -          TaggedElementBinder tagged = elementBinders[elementBinderIndex];
  -          _bindTagged(tagged, elementBinderIndex, rootInjector, elementInjectors, view, elts[j]);
  +        if (linkingInfo.ngBindingChildren) {
  +          var elts = (node as dom.Element).querySelectorAll('.ng-binding');
  +          for (int j = 0; j < elts.length; j++, elementBinderIndex++) {
  +            TaggedElementBinder tagged = elementBinders[elementBinderIndex];
  +            _bindTagged(tagged, elementBinderIndex, rootInjector, elementInjectors, view, elts[j]);
  +          }
           }
  -      } else if (node.nodeType == dom.Node.TEXT_NODE ||
  -                 node.nodeType == dom.Node.COMMENT_NODE) {
  +      } else {
           TaggedElementBinder tagged = elementBinders[elementBinderIndex];
           assert(tagged.binder != null || tagged.isTopLevel);
           if (tagged.binder != null) {
             _bindTagged(tagged, elementBinderIndex, rootInjector, elementInjectors, view, node);
           }
           elementBinderIndex++;
  -      } else {
  -        throw "nodeType sadness ${node.nodeType}}";
         }
   
         if (fakeParent) {
  
positive.code: part of angular.core.dom_internal;
  
  class TaggingViewFactory implements ViewFactory {
    final List<TaggedElementBinder> elementBinders;
    final List<dom.Node> templateNodes;
    final Profiler _perf;
  
    TaggingViewFactory(this.templateNodes, this.elementBinders, this._perf);
  
    BoundViewFactory bind(Injector injector) => new BoundViewFactory(this, injector);
  
  
negative.code: 
      var elementBinderIndex = 0;
      for (int i = 0; i < nodeList.length; i++) {
        dom.Node node = nodeList[i];
        NodeLinkingInfo linkingInfo = nodeLinkingInfos[i];
  
        // if node isn't attached to the DOM, create a parent for it.
        var parentNode = node.parentNode;
  