动态添加Dom元素到预渲染的Angular2 Universal Page

时间:2017-03-06 14:04:06

标签: angular asp.net-core angular-universal

我最近切换到angular2 universal以使我的SPA被搜索引擎抓取并且Angular Universal对于这个用例非常棒,当我尝试为每个页面注入动态元数据时遇到问题,我尝试使用ElementRef使用渲染器,我使用了一些angular2-meta服务但是当平台不是浏览器时它不起作用

以下代码是我的最新尝试

import { Component, AfterViewInit, Renderer, Inject, ElementRef } from '@angular/core';
import { DOCUMENT } from '@angular/platform-browser';
import { DomRenderer ,NodeDomRenderer} from 'angular2-platform-node';
import {isBrowser, isNode } from 'angular2-universal';
import { Meta, MetaDefinition } from '../../services/meta.service';

@Component({
    selector: 'home',
    templateUrl: './home.component.html'
})
export class HomeComponent {
    constructor(public meta:Meta) {
        const name: MetaDefinition = {name: 'application-name', content: 'Name of my application'};                
    const desc: MetaDefinition = {name: 'description', content: 'A description of the page'};
    const tags: HTMLMetaElement[] = this.meta.addTags([name, desc]);
    }
}

当我用构造函数包装代码时     if(isBrowser)它仅在客户端呈现,但是当我查看页面的源代码时,它不会呈现

当我尝试使用渲染器渲染the this.renderer.createElement时,功能无法正常工作

在将页面发送到客户端之前,是否有任何解决方案或想法可以在服务器中呈现元标记,我使用角度通用 ASP.NET Core 1.1

提前致谢

0 个答案:

没有答案