如何将变量从一个组件传递到同一级别的另一个组件?

时间:2019-05-27 23:34:03

标签: angular

如何将变量从一个组件传递到同一级别的另一个组件?我在Step #1: Preparing to unpack .../libapr1_1.5.2-5_amd64.deb ... Step #1: Unpacking libapr1:amd64 (1.5.2-5) ... Step #1: Setting up libapr1:amd64 (1.5.2-5) ... Step #1: Processing triggers for libc-bin (2.24-11+deb9u4) ... Step #1: Removing intermediate container 1fc38e2094c7 Step #1: ---> 4176a4819577 Step #1: Step 11/21 : ENV GPG_KEYS 05AB33110949707C93A279E3D3EFE6B686867BA6 07E48665A34DCAFAE522E5E6266191C37C037D42 47309207D818FFD8DCD3F83F1931D684307A10A5 541FBE7D8F78B25E055DDEE13C370389288584E7 61B832AC2F1C5A90F0F9B00A1C506407564C17A3 79F7026C690BAA50B92CD8B66A3AD3F4F22C4FED 9BA44C2621385CB966EBA586F72C284D731FABEE A27677289986DB50844682F8ACB77FC2E86E29AC A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 DCFD35E0BF8CA7344752DE8B6FB21E8933C60243 F3A04C595DB5B6A5F1ECA43E3B7BBB100D811BBE F7DA48BB64BCB84ECBA7EE6935CD23C10D498E23 Step #1: ---> Running in b9f5df938ebc Step #1: Removing intermediate container b9f5df938ebc Step #1: ---> e41d4c57146b Step #1: Step 12/21 : ENV TOMCAT_MAJOR 9 Step #1: ---> Running in 93228b5fc301 Step #1: Removing intermediate container 93228b5fc301 Step #1: ---> 9493e206667a Step #1: Step 13/21 : ENV TOMCAT_VERSION 9.0.14 Step #1: ---> Running in 2127ca636165 Step #1: Removing intermediate container 2127ca636165 Step #1: ---> 29cd9c11963b Step #1: Step 14/21 : ENV TOMCAT_SHA512 6a06eabacb02eaa2c64772265f8ddb5ddbfbad72b4c5da82e68da739675c3ec7e4692ebb8aa80e1b5512006f60856c939c7c3a5fe4f46f30bd4b575ecd068d54 Step #1: ---> Running in 77ac801c3995 Step #1: Removing intermediate container 77ac801c3995 Step #1: ---> ab68501a7204 Step #1: Step 15/21 : ENV TOMCAT_TGZ_URLS https://www.apache.org/dyn/closer.cgi?action=download&filename=tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz https://www-us.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz https://www.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz https://archive.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz Step #1: ---> Running in 5475b4b3fdf0 Step #1: Removing intermediate container 5475b4b3fdf0 Step #1: ---> d35149a8d4e8 Step #1: Step 16/21 : ENV TOMCAT_ASC_URLS https://www.apache.org/dyn/closer.cgi?action=download&filename=tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz.asc https://www-us.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz.asc https://www.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz.asc https://archive.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz.asc Step #1: ---> Running in 143651dc16c2 Step #1: Removing intermediate container 143651dc16c2 Step #1: ---> e8cd3a05124b Step #1: Step 17/21 : RUN set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends gnupg dirmngr; export GNUPGHOME="$(mktemp -d)"; for key in $GPG_KEYS; do gpg --batch --keyserver ipv4.pool.sks-keyservers.net --recv-keys "$key"; done; apt-get install -y --no-install-recommends wget ca-certificates; success=; for url in $TOMCAT_TGZ_URLS; do if wget -O tomcat.tar.gz "$url"; then success=1; break; fi; done; [ -n "$success" ]; echo "$TOMCAT_SHA512 *tomcat.tar.gz" | sha512sum -c -; success=; for url in $TOMCAT_ASC_URLS; do if wget -O tomcat.tar.gz.asc "$url"; then success=1; break; fi; done; [ -n "$success" ]; gpg --batch --verify tomcat.tar.gz.asc tomcat.tar.gz; tar -xvf tomcat.tar.gz --strip-components=1; rm bin/*.bat; rm tomcat.tar.gz*; command -v gpgconf && gpgconf --kill all || :; rm -rf "$GNUPGHOME"; nativeBuildDir="$(mktemp -d)"; tar -xvf bin/tomcat-native.tar.gz -C "$nativeBuildDir" --strip-components=1; apt-get install -y --no-install-recommends dpkg-dev gcc libapr1-dev libssl-dev make "openjdk-${JAVA_VERSION%%[.~bu-]*}-jdk=$JAVA_DEBIAN_VERSION" ; ( export CATALINA_HOME="$PWD"; cd "$nativeBuildDir/native"; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; ./configure --build="$gnuArch" --libdir="$TOMCAT_NATIVE_LIBDIR" --prefix="$CATALINA_HOME" --with-apr="$(which apr-1-config)" --with-java-home="$(docker-java-home)" --with-ssl=yes; make -j "$(nproc)"; make install; ); rm -rf "$nativeBuildDir"; rm bin/tomcat-native.tar.gz; apt-mark auto '.*' > /dev/null; [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; find ./bin/ -name '*.sh' -exec sed -ri 's|^#!/bin/sh$|#!/usr/bin/env bash|' '{}' +; chmod -R +rX .; chmod 777 logs work Step #1: ---> Running in f7a894cf216c Step #1: [91m+ apt-mark showmanual Step #1: [0m[91m+ savedAptMark=bzip2 Step #1: ca-certificates Step #1: curl Step #1: dirmngr Step #1: fontconfig Step #1: gnupg Step #1: iproute2 Step #1: iputils-ping Step #1: libapr1 Step #1: libfreetype6 Step #1: netbase Step #1: unzip Step #1: wget Step #1: xz-utils Step #1: + apt-get update Step #1: [0mIgn:1 http://deb.debian.org/debian stretch InRelease Step #1: Get:2 http://security.debian.org/debian-security stretch/updates InRelease [94.3 kB] Step #1: Get:3 http://deb.debian.org/debian stretch-updates InRelease [91.0 kB] Step #1: Get:4 http://deb.debian.org/debian stretch Release [118 kB] Step #1: Get:5 http://deb.debian.org/debian stretch Release.gpg [2434 B] Step #1: Get:6 http://security.debian.org/debian-security stretch/updates/main amd64 Packages [492 kB] Step #1: Get:7 http://deb.debian.org/debian stretch-updates/main amd64 Packages [27.2 kB] Step #1: Get:8 http://deb.debian.org/debian stretch/main amd64 Packages [7082 kB] Step #1: Fetched 7907 kB in 1s (4681 kB/s) Step #1: Reading package lists... Step #1: [91m+ apt-get install -y --no-install-recommends gnupg dirmngr Step #1: [0mReading package lists... Step #1: Building dependency tree... Step #1: Reading state information... Step #1: dirmngr is already the newest version (2.1.18-8~deb9u4). Step #1: gnupg is already the newest version (2.1.18-8~deb9u4). Step #1: 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Step #1: [91m+ mktemp -d Step #1: [0m[91m+ export GNUPGHOME=/tmp/tmp.8FhNStIe88 Step #1: + gpg --batch --keyserver ipv4.pool.sks-keyservers.net --recv-keys 05AB33110949707C93A279E3D3EFE6B686867BA6 Step #1: [0m[91mgpg: keybox '/tmp/tmp.8FhNStIe88/pubring.kbx' created Step #1: [0m[91mgpg: keyserver receive failed: No data Step #1: The command '/bin/sh -c set -eux; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends gnupg dirmngr; export GNUPGHOME="$(mktemp -d)"; for key in $GPG_KEYS; do gpg --batch --keyserver ipv4.pool.sks-keyservers.net --recv-keys "$key"; done; apt-get install -y --no-install-recommends wget ca-certificates; success=; for url in $TOMCAT_TGZ_URLS; do if wget -O tomcat.tar.gz "$url"; then success=1; break; fi; done; [ -n "$success" ]; echo "$TOMCAT_SHA512 *tomcat.tar.gz" | sha512sum -c -; success=; for url in $TOMCAT_ASC_URLS; do if wget -O tomcat.tar.gz.asc "$url"; then success=1; break; fi; done; [ -n "$success" ]; gpg --batch --verify tomcat.tar.gz.asc tomcat.tar.gz; tar -xvf tomcat.tar.gz --strip-components=1; rm bin/*.bat; rm tomcat.tar.gz*; command -v gpgconf && gpgconf --kill all || :; rm -rf "$GNUPGHOME"; nativeBuildDir="$(mktemp -d)"; tar -xvf bin/tomcat-native.tar.gz -C "$nativeBuildDir" --strip-components=1; apt-get install -y --no-install-recommends dpkg-dev gcc libapr1-dev libssl-dev make "openjdk-${JAVA_VERSION%%[.~bu-]*}-jdk=$JAVA_DEBIAN_VERSION" ; ( export CATALINA_HOME="$PWD"; cd "$nativeBuildDir/native"; gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"; ./configure --build="$gnuArch" --libdir="$TOMCAT_NATIVE_LIBDIR" --prefix="$CATALINA_HOME" --with-apr="$(which apr-1-config)" --with-java-home="$(docker-java-home)" --with-ssl=yes; make -j "$(nproc)"; make install; ); rm -rf "$nativeBuildDir"; rm bin/tomcat-native.tar.gz; apt-mark auto '.*' > /dev/null; [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; find ./bin/ -name '*.sh' -exec sed -ri 's|^#!/bin/sh$|#!/usr/bin/env bash|' '{}' +; chmod -R +rX .; chmod 777 logs work' returned a non-zero code: 2 Finished Step #1 ERROR ERROR: build step 1 "gcr.io/cloud-builders/docker" failed: exit status 2 Step #1: [0m 组件服务中有用户变量

Auth

在第一个组件中,我将其注入,如果获得用户变量的值,则当用户进行身份验证时,我将使用@Injectable({ providedIn: 'root' }) export class AuthService { private user: string = null; getUser() { return this.user; } setUser(username) { sessionStorage.setItem('username', username); this.user = sessionStorage.getItem('username'); console.log('VAMOS!!!', this.user); } } 将其重定向,即,将下一个组件可视化。

在下一个名为list-user的组件中,我在this.router.navigate (['/ meet'])中获得了null

getUser ()

2 个答案:

答案 0 :(得分:2)

当您重定向到['/ meet']时,Authservice组件将从DOM中删除。

这就是为什么它提供空值的原因。

为什么不在当前组件中使用sessionStorage.getItem?

async ngOnInit() {

    console.log('HOY',sessionStorage.getItem('username'));
}

答案 1 :(得分:1)

我们可以使用服务全局存储数据,以便我们可以访问任何组件中的数据。

  • 如果在模块级别提供服务(相同的单例实例 将共享所有组件。)

  • 如果您在组件级别提供服务(新实例将
    为组件创建)。

因此,请根据您的用例,不要在组件级别注入服务。

const group: any = {};
group['subject'] = new FormControl(null, Validators.required);
const formGroup = new FormGroup(group);

<form [formGroup]="formGroup">
    <input matInput [formControlName]="subject" id="subject">
</form>