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


TypeScript reflection.reflector类代码示例

本文整理汇总了TypeScript中angular2/src/reflection/reflection.reflector的典型用法代码示例。如果您正苦于以下问题:TypeScript reflector类的具体用法?TypeScript reflector怎么用?TypeScript reflector使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


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

示例1: it

 it('should notify a directive about changes after all its properties have been set', () => {
   var pv = new ProtoView(el('<div class="ng-binding"></div>'), new DynamicProtoChangeDetector(null, null), null);
   pv.bindElement(null, 0, new ProtoElementInjector(null, 0, [DirectiveBinding.createFromType(DirectiveImplementingOnChange, new DummyDirective({lifecycle: [onChange]}))]));
   pv.bindDirectiveProperty(0, parser.parseBinding('a', null), 'a', reflector.setter('a'));
   pv.bindDirectiveProperty(0, parser.parseBinding('b', null), 'b', reflector.setter('b'));
   createViewAndChangeDetector(pv);
   ctx.a = 100;
   ctx.b = 200;
   cd.detectChanges();
   var directive = view.elementInjectors[0].get(DirectiveImplementingOnChange);
   expect(directive.c).toEqual(300);
 });
开发者ID:gdi2290,项目名称:sample-Angular2,代码行数:12,代码来源:view_spec.ts

示例2:

 MapWrapper.forEach(directiveBinder.propertyBindings, (astWithSource, propertyName) => {
   // TODO: these setters should eventually be created by change detection, to make
   // it monomorphic!
   var setter = reflector.setter(propertyName);
   ListWrapper.push(bindings, BindingRecord.createForDirective(astWithSource, propertyName,
                                                               setter, directiveRecord));
 });
开发者ID:CADBOT,项目名称:angular,代码行数:7,代码来源:proto_view_factory.ts

示例3: setterFactory

export function setterFactory(property: string): Function {
  var setterFn, styleParts, styleSuffix;
  if (StringWrapper.startsWith(property, ATTRIBUTE_PREFIX)) {
    setterFn = attributeSetterFactory(StringWrapper.substring(property, ATTRIBUTE_PREFIX.length));
  } else if (StringWrapper.startsWith(property, CLASS_PREFIX)) {
    setterFn = classSetterFactory(StringWrapper.substring(property, CLASS_PREFIX.length));
  } else if (StringWrapper.startsWith(property, STYLE_PREFIX)) {
    styleParts = property.split(STYLE_SEPARATOR);
    styleSuffix = styleParts.length > 2 ? ListWrapper.get(styleParts, 2) : '';
    setterFn = styleSetterFactory(ListWrapper.get(styleParts, 1), styleSuffix);
  } else if (StringWrapper.equals(property, 'innerHtml')) {
    if (isBlank(innerHTMLSetterCache)) {
      innerHTMLSetterCache = (el, value) => DOM.setInnerHTML(el, value);
    }
    setterFn = innerHTMLSetterCache;
  } else {
    property = resolvePropertyName(property);
    setterFn = StringMapWrapper.get(propertySettersCache, property);
    if (isBlank(setterFn)) {
      var propertySetterFn = reflector.setter(property);
      setterFn = function(receiver, value) {
        if (DOM.hasProperty(receiver, property)) {
          return propertySetterFn(receiver, value);
        }
      };
      StringMapWrapper.set(propertySettersCache, property, setterFn);
    }
  }
  return setterFn;
}
开发者ID:188799958,项目名称:angular,代码行数:30,代码来源:property_setter_factory.ts

示例4: _dependenciesFor

function _dependenciesFor(typeOrFunc) {
  var params = reflector.parameters(typeOrFunc);
  if (isBlank(params))
    return [];
  if (ListWrapper.any(params, (p) => isBlank(p)))
    throw new NoAnnotationError(typeOrFunc);
  return ListWrapper.map(params, (p) => _extractToken(typeOrFunc, p));
}
开发者ID:gdi2290,项目名称:sample-Angular2,代码行数:8,代码来源:binding.ts

示例5: _resolve

 _resolve(component) {
   var annotations = reflector.annotations(component);
   for (var i = 0; i < annotations.length; i++) {
     var annotation = annotations[i];
     if (annotation instanceof Template) {
       return annotation;
     }
   }
   throw new BaseException(`No template found for ${stringify(component)}`);
 }
开发者ID:gdi2290,项目名称:sample-Angular2,代码行数:10,代码来源:template_resolver.ts


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