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


TypeScript i18n_html_parser.I18NHtmlParser类代码示例

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


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

示例1: it

    it('should parse the translations only once', () => {
      const transBundle = new TranslationBundle({}, null, () => 'id');
      spyOn(TranslationBundle, 'load').and.returnValue(transBundle);
      const htmlParser = new HtmlParser();
      const i18nHtmlParser = new I18NHtmlParser(htmlParser, 'translations');

      expect(TranslationBundle.load).toHaveBeenCalledTimes(1);

      i18nHtmlParser.parse('source', 'url');
      i18nHtmlParser.parse('source', 'url');
      expect(TranslationBundle.load).toHaveBeenCalledTimes(1);
    });
开发者ID:Cammisuli,项目名称:angular,代码行数:12,代码来源:i18n_html_parser_spec.ts

示例2: it

    it('should return the html nodes when no translations are given', () => {
      const htmlParser = new HtmlParser();
      const i18nHtmlParser = new I18NHtmlParser(htmlParser);
      const ptResult = new ParseTreeResult([], []);

      spyOn(htmlParser, 'parse').and.returnValue(ptResult);
      spyOn(i18nHtmlParser, 'parse').and.callThrough();

      expect(i18nHtmlParser.parse('source', 'url')).toBe(ptResult);

      expect(htmlParser.parse).toHaveBeenCalledTimes(1);
      expect(htmlParser.parse)
          .toHaveBeenCalledWith('source', 'url', jasmine.anything(), jasmine.anything());
    });
开发者ID:JohnnyQQQQ,项目名称:angular,代码行数:14,代码来源:i18n_html_parser_spec.ts

示例3: getTemplateAst

 getTemplateAst(template: TemplateSource, contextFile: string): AstResult {
   let result: AstResult;
   try {
     const resolvedMetadata =
         this.metadataResolver.getNonNormalizedDirectiveMetadata(template.type as any);
     const metadata = resolvedMetadata && resolvedMetadata.metadata;
     if (metadata) {
       const rawHtmlParser = new HtmlParser();
       const htmlParser = new I18NHtmlParser(rawHtmlParser);
       const expressionParser = new Parser(new Lexer());
       const config = new CompilerConfig();
       const parser = new TemplateParser(
           config, expressionParser, new DomElementSchemaRegistry(), htmlParser, null, []);
       const htmlResult = htmlParser.parse(template.source, '');
       const analyzedModules = this.host.getAnalyzedModules();
       let errors: Diagnostic[] = undefined;
       let ngModule = analyzedModules.ngModuleByPipeOrDirective.get(template.type);
       if (!ngModule) {
         // Reported by the the declaration diagnostics.
         ngModule = findSuitableDefaultModule(analyzedModules);
       }
       if (ngModule) {
         const resolvedDirectives = ngModule.transitiveModule.directives.map(
             d => this.host.resolver.getNonNormalizedDirectiveMetadata(d.reference));
         const directives =
             resolvedDirectives.filter(d => d !== null).map(d => d.metadata.toSummary());
         const pipes = ngModule.transitiveModule.pipes.map(
             p => this.host.resolver.getOrLoadPipeMetadata(p.reference).toSummary());
         const schemas = ngModule.schemas;
         const parseResult = parser.tryParseHtml(
             htmlResult, metadata, template.source, directives, pipes, schemas, '');
         result = {
           htmlAst: htmlResult.rootNodes,
           templateAst: parseResult.templateAst,
           directive: metadata, directives, pipes,
           parseErrors: parseResult.errors, expressionParser, errors
         };
       }
     }
   } catch (e) {
     let span = template.span;
     if (e.fileName == contextFile) {
       span = template.query.getSpanAt(e.line, e.column) || span;
     }
     result = {errors: [{kind: DiagnosticKind.Error, message: e.message, span}]};
   }
   return result;
 }
开发者ID:tolemac,项目名称:angular,代码行数:48,代码来源:language_service.ts


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