Просмотр исходной страницы не обновляется с угловой универсальной SSR - PullRequest
0 голосов
/ 14 ноября 2018

Я клонировал этот проект https://github.com/enten/angular-universal Все в порядке, я могу просмотреть исходную страницу в Chrome, но когда я пытаюсь динамически изменить данные (например, заголовок), при проверке источника страницы в Chrome ничего не меняется,Зачем?Есть ли способ изменить содержимое на стороне сервера?

Для получения дополнительной информации у меня есть приложение, которое отображает список комментариев и поле ввода для добавления комментария.Когда страница загружается в первый раз, я вижу список комментариев в «источнике страницы».Но когда я добавляю комментарий и проверяю источник страницы, содержимое совпадает с исходным значением.Простой пример ниже

Вот post.component.html

<p>{{result}}</p>
<button (click)="changeMessage()">Clique moi</button>

И post.component.ts

import { Component, OnInit, PLATFORM_ID, Inject, NgZone } from '@angular/core';
import { TransferState, makeStateKey } from '@angular/platform-browser';
import { isPlatformServer } from '@angular/common';

const RESULT_KEY = makeStateKey<string>('result');
declare var window: any;

@Component({
    selector: 'app-post',
    templateUrl: './post.component.html',
    styleUrls: ['./post.component.css']
})
export class PostComponent implements OnInit {
    public result;
    private isServer: boolean;
    constructor(
        private tstate: TransferState,
        @Inject(PLATFORM_ID) platformId,
        private _ngZone: NgZone
    ) {
        this.isServer = isPlatformServer(platformId);
    }

    ngOnInit() {
        if (this.tstate.hasKey(RESULT_KEY)) {
            // We are in the browser
            this.result = this.tstate.get(RESULT_KEY, '' as string);
        } else if (this.isServer) {
            // We are on the server
            this.tstate.set(RESULT_KEY, 'Im created on the server!' as string);
        } else {
            // No result received
            this.result = 'Im created in the browser!';
        }
    }

    changeMessage() {
        this.result = "Message changed";
    }
}

Итак, когда страница загружается первой,Я вижу "Я создан на сервере!"когда я проверяю «просмотр источника страницы» в браузере.После этого я нажимаю на кнопку, в которой я вижу изменения в браузере, но содержимое по-прежнему совпадает с исходным значением, когда я проверяю «просмотреть исходный код страницы»

Извините за мой английский :) Спасибо

...