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


TypeScript SelectorMatcher.addSelectables方法代码示例

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


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

示例1: elementMatches

  elementMatches(node, selector: string, matcher = null): boolean {
    var result = false;
    if (selector && selector.charAt(0) == "#") {
      result = this.getAttribute(node, 'id') == selector.substring(1);
    } else if (selector) {
      var result = false;
      if (matcher == null) {
        matcher = new SelectorMatcher();
        matcher.addSelectables(CssSelector.parse(selector));
      }

      var cssSelector = new CssSelector();
      cssSelector.setElement(this.tagName(node));
      if (node.attribs) {
        for (var attrName in node.attribs) {
          cssSelector.addAttribute(attrName, node.attribs[attrName]);
        }
      }
      var classList = this.classList(node);
      for (var i = 0; i < classList.length; i++) {
        cssSelector.addClassName(classList[i]);
      }

      matcher.match(cssSelector, function(selector, cb) { result = true; });
    }
    return result;
  }
开发者ID:CADBOT,项目名称:angular,代码行数:27,代码来源:parse5_adapter.ts

示例2: addSelectable

 function addSelectable() {
   var matcher = new SelectorMatcher();
   for (var i = 0; i < count; i++) {
     matcher.addSelectables(fixedSelectors[i], i);
   }
   return matcher;
 }
开发者ID:B-Thapa,项目名称:angular,代码行数:7,代码来源:selector_benchmark.ts

示例3: constructor

 constructor(parser: Parser, directives:List<DirectiveMetadata>) {
   super();
   this._parser = parser;
   this._selectorMatcher = new SelectorMatcher();
   this._directives = directives;
   for (var i=0; i<directives.length; i++) {
     var selector = CssSelector.parse(directives[i].selector);
     this._selectorMatcher.addSelectables(selector, i);
   }
 }
开发者ID:tavwizard,项目名称:angular,代码行数:10,代码来源:directive_parser.ts

示例4: constructor

 constructor(parser: Parser, directives: List<DirectiveMetadata>) {
   this._parser = parser;
   this._selectorMatcher = new SelectorMatcher();
   this._directives = directives;
   for (var i = 0; i < directives.length; i++) {
     var directive = directives[i];
     var selector = CssSelector.parse(directive.selector);
     this._ensureComponentOnlyHasElementSelector(selector, directive);
     this._selectorMatcher.addSelectables(selector, i);
   }
 }
开发者ID:baraksu,项目名称:angular,代码行数:11,代码来源:directive_parser.ts

示例5: main

export function main() {
  BrowserDomAdapter.makeCurrent();
  var count = getIntParameter('selectors');

  var fixedMatcher;
  var fixedSelectorStrings = [];
  var fixedSelectors = [];
  for (var i = 0; i < count; i++) {
    ListWrapper.push(fixedSelectorStrings, randomSelector());
  }
  for (var i = 0; i < count; i++) {
    ListWrapper.push(fixedSelectors, CssSelector.parse(fixedSelectorStrings[i]));
  }
  fixedMatcher = new SelectorMatcher();
  for (var i = 0; i < count; i++) {
    fixedMatcher.addSelectables(fixedSelectors[i], i);
  }

  function parse() {
    var result = [];
    for (var i = 0; i < count; i++) {
      ListWrapper.push(result, CssSelector.parse(fixedSelectorStrings[i]));
    }
    return result;
  }

  function addSelectable() {
    var matcher = new SelectorMatcher();
    for (var i = 0; i < count; i++) {
      matcher.addSelectables(fixedSelectors[i], i);
    }
    return matcher;
  }

  function match() {
    var matchCount = 0;
    for (var i = 0; i < count; i++) {
      fixedMatcher.match(fixedSelectors[i][0], (selector, selected) => { matchCount += selected; });
    }
    return matchCount;
  }

  bindAction('#parse', parse);
  bindAction('#addSelectable', addSelectable);
  bindAction('#match', match);
}
开发者ID:B-Thapa,项目名称:angular,代码行数:46,代码来源:selector_benchmark.ts

示例6: querySelectorAll

 querySelectorAll(el, selector: string) {
   var res = ListWrapper.create();
   var _recursive = (result, node, selector, matcher) => {
     var cNodes = node.childNodes;
     if (cNodes && cNodes.length > 0) {
       for (var i = 0; i < cNodes.length; i++) {
         var childNode = cNodes[i];
         if (this.elementMatches(childNode, selector, matcher)) {
           ListWrapper.push(result, childNode);
         }
         _recursive(result, childNode, selector, matcher);
       }
     }
   };
   var matcher = new SelectorMatcher();
   matcher.addSelectables(CssSelector.parse(selector));
   _recursive(res, el, selector, matcher);
   return res;
 }
开发者ID:CADBOT,项目名称:angular,代码行数:19,代码来源:parse5_adapter.ts


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