当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript DOM.nextSibling方法代码示例

本文整理汇总了TypeScript中angular2/src/dom/dom_adapter.DOM.nextSibling方法的典型用法代码示例。如果您正苦于以下问题:TypeScript DOM.nextSibling方法的具体用法?TypeScript DOM.nextSibling怎么用?TypeScript DOM.nextSibling使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在angular2/src/dom/dom_adapter.DOM的用法示例。


在下文中一共展示了DOM.nextSibling方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: _process

  _process(results, parent: CompileElement, current: CompileElement,
           compilationCtxtDescription: string = '') {
    var additionalChildren = this._control.internalProcess(results, 0, parent, current);

    if (current.compileChildren) {
      var node = DOM.firstChild(DOM.templateAwareRoot(current.element));
      while (isPresent(node)) {
        // compiliation can potentially move the node, so we need to store the
        // next sibling before recursing.
        var nextNode = DOM.nextSibling(node);
        if (DOM.isElementNode(node)) {
          var childCompileElement = new CompileElement(node, compilationCtxtDescription);
          childCompileElement.inheritedProtoView = current.inheritedProtoView;
          childCompileElement.inheritedElementBinder = current.inheritedElementBinder;
          childCompileElement.distanceToInheritedBinder = current.distanceToInheritedBinder + 1;
          this._process(results, current, childCompileElement);
        }
        node = nextNode;
      }
    }

    if (isPresent(additionalChildren)) {
      for (var i = 0; i < additionalChildren.length; i++) {
        this._process(results, current, additionalChildren[i]);
      }
    }
  }
开发者ID:AsherBarak,项目名称:angular,代码行数:27,代码来源:compile_pipeline.ts

示例2: queryFragments

function queryFragments(templateContent: Node, fragmentsRootNodeCount: number[]): Node[][] {
  var fragments = ListWrapper.createGrowableSize(fragmentsRootNodeCount.length);

  // Note: An explicit loop is the fastest way to convert a DOM array into a JS array!
  var childNode = DOM.firstChild(templateContent);
  for (var fragmentIndex = 0; fragmentIndex < fragments.length; fragmentIndex++) {
    var fragment = ListWrapper.createFixedSize(fragmentsRootNodeCount[fragmentIndex]);
    fragments[fragmentIndex] = fragment;
    // Note: the 2nd, 3rd, ... fragments are separated by each other via a '|'
    if (fragmentIndex >= 1) {
      childNode = DOM.nextSibling(childNode);
    }
    for (var i = 0; i < fragment.length; i++) {
      fragment[i] = childNode;
      childNode = DOM.nextSibling(childNode);
    }
  }
  return fragments;
}
开发者ID:goderbauer,项目名称:angular,代码行数:19,代码来源:util.ts

示例3: it

    it('should clone correctly', () => {
      var el1 = el('<div x="y">a<span>b</span></div>');
      var clone = DOM.clone(el1);

      expect(clone).not.toBe(el1);
      DOM.setAttribute(clone, 'test', '1');
      expect(stringifyElement(clone)).toEqual('<div test="1" x="y">a<span>b</span></div>');
      expect(DOM.getAttribute(el1, 'test')).toBeFalsy();

      var cNodes = DOM.childNodes(clone);
      var firstChild = cNodes[0];
      var secondChild = cNodes[1];
      expect(DOM.parentElement(firstChild)).toBe(clone);
      expect(DOM.nextSibling(firstChild)).toBe(secondChild);
      expect(DOM.isTextNode(firstChild)).toBe(true);

      expect(DOM.parentElement(secondChild)).toBe(clone);
      expect(DOM.nextSibling(secondChild)).toBeFalsy();
      expect(DOM.isElementNode(secondChild)).toBe(true);

    });
开发者ID:goderbauer,项目名称:angular,代码行数:21,代码来源:dom_adapter_spec.ts

示例4: _instantiate

 _instantiate(hostElementInjector, eventManager) {
   var rootElementClone = this.instantiateInPlace ? this.element : DOM.importIntoDoc(this.element);
   var elementsWithBindingsDynamic;
   if (this.isTemplateElement) {
     elementsWithBindingsDynamic = DOM.querySelectorAll(DOM.content(rootElementClone), NG_BINDING_CLASS_SELECTOR);
   } else {
     elementsWithBindingsDynamic = DOM.getElementsByClassName(rootElementClone, NG_BINDING_CLASS);
   }
   var elementsWithBindings = ListWrapper.createFixedSize(elementsWithBindingsDynamic.length);
   for (var binderIdx = 0; binderIdx < elementsWithBindingsDynamic.length; ++binderIdx) {
     elementsWithBindings[binderIdx] = elementsWithBindingsDynamic[binderIdx];
   }
   var viewNodes;
   if (this.isTemplateElement) {
     var childNode = DOM.firstChild(DOM.content(rootElementClone));
     viewNodes = [];
     while (childNode != null) {
       ListWrapper.push(viewNodes, childNode);
       childNode = DOM.nextSibling(childNode);
     }
   } else {
     viewNodes = [rootElementClone];
   }
   var view = new View(this, viewNodes, this.protoLocals);
   var changeDetector = this.protoChangeDetector.instantiate(view, this.bindingRecords, this._getVariableBindings(), this._getDirectiveMementos());
   var binders = this.elementBinders;
   var elementInjectors = ListWrapper.createFixedSize(binders.length);
   var eventHandlers = ListWrapper.createFixedSize(binders.length);
   var rootElementInjectors = [];
   var textNodes = [];
   var elementsWithPropertyBindings = [];
   var preBuiltObjects = ListWrapper.createFixedSize(binders.length);
   var viewContainers = ListWrapper.createFixedSize(binders.length);
   var contentTags = ListWrapper.createFixedSize(binders.length);
   var componentChildViews = [];
   var lightDoms = ListWrapper.createFixedSize(binders.length);
   for (var binderIdx = 0; binderIdx < binders.length; binderIdx++) {
     var binder = binders[binderIdx];
     var element;
     if (binderIdx === 0 && this.rootBindingOffset === 1) {
       element = rootElementClone;
     } else {
       element = elementsWithBindings[binderIdx - this.rootBindingOffset];
     }
     var elementInjector = null;
     var protoElementInjector = binder.protoElementInjector;
     if (isPresent(protoElementInjector)) {
       if (isPresent(protoElementInjector.parent)) {
         var parentElementInjector = elementInjectors[protoElementInjector.parent.index];
         elementInjector = protoElementInjector.instantiate(parentElementInjector, null);
       } else {
         elementInjector = protoElementInjector.instantiate(null, hostElementInjector);
         ListWrapper.push(rootElementInjectors, elementInjector);
       }
     }
     elementInjectors[binderIdx] = elementInjector;
     if (binder.hasElementPropertyBindings) {
       ListWrapper.push(elementsWithPropertyBindings, element);
     }
     var textNodeIndices = binder.textNodeIndices;
     if (isPresent(textNodeIndices)) {
       var childNode = DOM.firstChild(DOM.templateAwareRoot(element));
       for (var j = 0,
           k = 0; j < textNodeIndices.length; j++) {
         for (var index = textNodeIndices[j]; k < index; k++) {
           childNode = DOM.nextSibling(childNode);
         }
         ListWrapper.push(textNodes, childNode);
       }
     }
     var lightDom = null;
     var bindingPropagationConfig = null;
     if (isPresent(binder.nestedProtoView) && isPresent(binder.componentDirective)) {
       var strategy = this.shadowDomStrategy;
       var childView = binder.nestedProtoView.instantiate(elementInjector, eventManager);
       changeDetector.addChild(childView.changeDetector);
       lightDom = strategy.constructLightDom(view, childView, element);
       strategy.attachTemplate(element, childView);
       bindingPropagationConfig = new BindingPropagationConfig(childView.changeDetector);
       ListWrapper.push(componentChildViews, childView);
     }
     lightDoms[binderIdx] = lightDom;
     var destLightDom = null;
     if (isPresent(binder.parent) && binder.distanceToParent === 1) {
       destLightDom = lightDoms[binder.parent.index];
     }
     var viewContainer = null;
     if (isPresent(binder.viewportDirective)) {
       viewContainer = new ViewContainer(view, element, binder.nestedProtoView, elementInjector, eventManager, destLightDom);
     }
     viewContainers[binderIdx] = viewContainer;
     var contentTag = null;
     if (isPresent(binder.contentTagSelector)) {
       contentTag = new Content(destLightDom, element, binder.contentTagSelector);
     }
     contentTags[binderIdx] = contentTag;
     if (isPresent(elementInjector)) {
       preBuiltObjects[binderIdx] = new PreBuiltObjects(view, new NgElement(element), viewContainer, bindingPropagationConfig);
     }
     if (isPresent(binder.events)) {
//.........这里部分代码省略.........
开发者ID:gdi2290,项目名称:sample-Angular2,代码行数:101,代码来源:view.ts

示例5: _removeNodesUntil

 _removeNodesUntil(node) {
   var p = DOM.parentElement(this.beginScript);
   for (var next = DOM.nextSibling(this.beginScript); next !== node; next = DOM.nextSibling(this.beginScript)) {
     DOM.removeChild(p, next);
   }
 }
开发者ID:gdi2290,项目名称:sample-Angular2,代码行数:6,代码来源:content_tag.ts

示例6: constructor

 constructor(contentEl) {
   super();
   this.beginScript = contentEl;
   this.endScript = DOM.nextSibling(this.beginScript);
   this.nodes = [];
 }
开发者ID:gdi2290,项目名称:sample-Angular2,代码行数:6,代码来源:content_tag.ts

示例7: _createView

 _createView(protoView) {
   var rootElementClone = protoView.isRootView ? protoView.element : DOM.importIntoDoc(protoView.element);
   var elementsWithBindingsDynamic;
   if (protoView.isTemplateElement) {
     elementsWithBindingsDynamic = DOM.querySelectorAll(DOM.content(rootElementClone), NG_BINDING_CLASS_SELECTOR);
   } else {
     elementsWithBindingsDynamic = DOM.getElementsByClassName(rootElementClone, NG_BINDING_CLASS);
   }
   var elementsWithBindings = ListWrapper.createFixedSize(elementsWithBindingsDynamic.length);
   for (var binderIdx = 0; binderIdx < elementsWithBindingsDynamic.length; ++binderIdx) {
     elementsWithBindings[binderIdx] = elementsWithBindingsDynamic[binderIdx];
   }
   var viewRootNodes;
   if (protoView.isTemplateElement) {
     var childNode = DOM.firstChild(DOM.content(rootElementClone));
     viewRootNodes = [];
     while (childNode != null) {
       ListWrapper.push(viewRootNodes, childNode);
       childNode = DOM.nextSibling(childNode);
     }
   } else {
     viewRootNodes = [rootElementClone];
   }
   var binders = protoView.elementBinders;
   var boundTextNodes = [];
   var boundElements = ListWrapper.createFixedSize(binders.length);
   var viewContainers = ListWrapper.createFixedSize(binders.length);
   var contentTags = ListWrapper.createFixedSize(binders.length);
   for (var binderIdx = 0; binderIdx < binders.length; binderIdx++) {
     var binder = binders[binderIdx];
     var element;
     if (binderIdx === 0 && protoView.rootBindingOffset === 1) {
       element = rootElementClone;
     } else {
       element = elementsWithBindings[binderIdx - protoView.rootBindingOffset];
     }
     boundElements[binderIdx] = element;
     var childNodes = DOM.childNodes(DOM.templateAwareRoot(element));
     var textNodeIndices = binder.textNodeIndices;
     for (var i = 0; i < textNodeIndices.length; i++) {
       ListWrapper.push(boundTextNodes, childNodes[textNodeIndices[i]]);
     }
     var viewContainer = null;
     if (isBlank(binder.componentId) && isPresent(binder.nestedProtoView)) {
       viewContainer = new ViewContainer(this, element);
     }
     viewContainers[binderIdx] = viewContainer;
     var contentTag = null;
     if (isPresent(binder.contentTagSelector)) {
       contentTag = new Content(element, binder.contentTagSelector);
     }
     contentTags[binderIdx] = contentTag;
   }
   var view = new View(protoView, viewRootNodes, boundTextNodes, boundElements, viewContainers, contentTags);
   for (var binderIdx = 0; binderIdx < binders.length; binderIdx++) {
     var binder = binders[binderIdx];
     var element = boundElements[binderIdx];
     if (isPresent(binder.componentId) && isPresent(binder.nestedProtoView)) {
       var childView = this._createView(binder.nestedProtoView);
       view.setComponentView(this._shadowDomStrategy, binderIdx, childView);
     }
     if (isPresent(binder.eventLocals)) {
       ListWrapper.forEach(binder.eventNames, (eventName) => {
         this._createEventListener(view, element, binderIdx, eventName, binder.eventLocals);
       });
     }
   }
   if (protoView.isRootView) {
     view.hydrate(null);
   }
   return view;
 }
开发者ID:gdi2290,项目名称:sample-Angular2,代码行数:72,代码来源:view_factory.ts


注:本文中的angular2/src/dom/dom_adapter.DOM.nextSibling方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。