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


TypeScript DOM.content方法代码示例

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


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

示例1: process

  process(parent: CompileElement, current: CompileElement, control: CompileControl) {
    var attrs = current.attrs();
    var templateBindings = attrs.get('template');
    var hasTemplateBinding = isPresent(templateBindings);

    // look for template shortcuts such as *ng-if="condition" and treat them as template="if
    // condition"
    MapWrapper.forEach(attrs, (attrValue, attrName) => {
      if (StringWrapper.startsWith(attrName, '*')) {
        var key = StringWrapper.substring(attrName, 1);  // remove the star
        if (hasTemplateBinding) {
          // 2nd template binding detected
          throw new BaseException(`Only one template directive per element is allowed: ` +
                                  `${templateBindings} and ${key} cannot be used simultaneously ` +
                                  `in ${current.elementDescription}`);
        } else {
          templateBindings = (attrValue.length == 0) ? key : key + ' ' + attrValue;
          hasTemplateBinding = true;
        }
      }
    });

    if (isPresent(parent)) {
      if (DOM.isTemplateElement(current.element)) {
        if (!current.isViewRoot) {
          var viewRoot = new CompileElement(DOM.createTemplate(''));
          viewRoot.inheritedProtoView = current.bindElement().bindNestedProtoView(viewRoot.element);
          // viewRoot doesn't appear in the original template, so we associate
          // the current element description to get a more meaningful message in case of error
          viewRoot.elementDescription = current.elementDescription;
          viewRoot.isViewRoot = true;

          this._moveChildNodes(DOM.content(current.element), DOM.content(viewRoot.element));
          control.addChild(viewRoot);
        }
      }
      if (hasTemplateBinding) {
        var newParent = new CompileElement(DOM.createTemplate(''));
        newParent.inheritedProtoView = current.inheritedProtoView;
        newParent.inheritedElementBinder = current.inheritedElementBinder;
        newParent.distanceToInheritedBinder = current.distanceToInheritedBinder;
        // newParent doesn't appear in the original template, so we associate
        // the current element description to get a more meaningful message in case of error
        newParent.elementDescription = current.elementDescription;

        current.inheritedProtoView = newParent.bindElement().bindNestedProtoView(current.element);
        current.inheritedElementBinder = null;
        current.distanceToInheritedBinder = 0;
        current.isViewRoot = true;
        this._parseTemplateBindings(templateBindings, newParent);

        this._addParentElement(current.element, newParent.element);
        control.addParent(newParent);
        DOM.remove(current.element);
      }
    }
  }
开发者ID:Salim-K,项目名称:angular,代码行数:57,代码来源:view_splitter.ts

示例2: it

 it('should replace the element with an empty <template> element', () => {
   var rootElement = DOM.createTemplate('<span template=""></span>');
   var originalChild = DOM.firstChild(DOM.content(rootElement));
   var results = proceess(rootElement);
   expect(results[0].element).toBe(rootElement);
   expect(stringifyElement(results[0].element))
       .toEqual('<template><template class="ng-binding"></template></template>');
   expect(stringifyElement(results[2].element))
       .toEqual('<template><span template=""></span></template>');
   expect(DOM.firstChild(DOM.content(results[2].element))).toBe(originalChild);
 });
开发者ID:goderbauer,项目名称:angular,代码行数:11,代码来源:view_splitter_spec.ts

示例3: it

 it('should work with top-level template node', () => {
   var rootElement = el('<template><div template>x</div></template>');
   var originalChild = DOM.content(rootElement).childNodes[0];
   var results = createPipeline().process(rootElement);
   expect(results[0].element).toBe(rootElement);
   expect(results[0].isViewRoot).toBe(true);
   expect(results[2].isViewRoot).toBe(true);
   expect(DOM.getOuterHTML(results[0].element)).toEqual('<template><template class="ng-binding"></template></template>');
   expect(results[2].element).toBe(originalChild);
 });
开发者ID:gdi2290,项目名称:sample-Angular2,代码行数:10,代码来源:view_splitter_spec.ts

示例4: process

 process(parent, current, control) {
   var attrs = current.attrs();
   var templateBindings = MapWrapper.get(attrs, 'template');
   var hasTemplateBinding = isPresent(templateBindings);
   MapWrapper.forEach(attrs, (attrValue, attrName) => {
     if (StringWrapper.startsWith(attrName, '*')) {
       var key = StringWrapper.substring(attrName, 1);
       if (hasTemplateBinding) {
         throw new BaseException(`Only one template directive per element is allowed: ` + `${templateBindings} and ${key} cannot be used simultaneously ` + `in ${current.elementDescription}`);
       } else {
         templateBindings = (attrValue.length == 0) ? key : key + ' ' + attrValue;
         hasTemplateBinding = true;
       }
     }
   });
   if (isPresent(parent)) {
     if (DOM.isTemplateElement(current.element)) {
       if (!current.isViewRoot) {
         var viewRoot = new CompileElement(DOM.createTemplate(''));
         viewRoot.inheritedProtoView = current.bindElement().bindNestedProtoView(viewRoot.element);
         viewRoot.elementDescription = current.elementDescription;
         viewRoot.isViewRoot = true;
         this._moveChildNodes(DOM.content(current.element), DOM.content(viewRoot.element));
         control.addChild(viewRoot);
       }
     }
     if (hasTemplateBinding) {
       var newParent = new CompileElement(DOM.createTemplate(''));
       newParent.inheritedProtoView = current.inheritedProtoView;
       newParent.inheritedElementBinder = current.inheritedElementBinder;
       newParent.distanceToInheritedBinder = current.distanceToInheritedBinder;
       newParent.elementDescription = current.elementDescription;
       current.inheritedProtoView = newParent.bindElement().bindNestedProtoView(current.element);
       current.inheritedElementBinder = null;
       current.distanceToInheritedBinder = 0;
       current.isViewRoot = true;
       this._parseTemplateBindings(templateBindings, newParent);
       this._addParentElement(current.element, newParent.element);
       control.addParent(newParent);
       DOM.remove(current.element);
     }
   }
 }
开发者ID:gdi2290,项目名称:sample-Angular2,代码行数:43,代码来源:view_splitter.ts

示例5: _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

示例6: el

export function el(html: string) {
  return DOM.firstChild(DOM.content(DOM.createTemplate(html)));
}
开发者ID:Bogatinov,项目名称:angular,代码行数:3,代码来源:utils.ts

示例7: shouldReturnTemplateContentNodes

 function shouldReturnTemplateContentNodes(template: Element, importIntoDoc: boolean) {
   var clone = cloner.cloneContent(cloner.prepareForClone(template), importIntoDoc);
   expect(clone).not.toBe(DOM.content(template));
   expect(DOM.getText(DOM.firstChild(clone))).toEqual('a');
 }
开发者ID:goderbauer,项目名称:angular,代码行数:5,代码来源:template_cloner_spec.ts

示例8: expect

 .then((el) => {
   expect(el).not.toBe(firstEl);
   expect(DOM.content(el)).toHaveText('xhr template');
   async.done();
 });
开发者ID:188799958,项目名称:angular,代码行数:5,代码来源:template_loader_spec.ts


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