angular - 组件声明、模板变量声明和元素引用不包含此类成员

标签 angular typescript variables

这可能是一个简单的修复。该元素应该在悬停时从页面顶部滑出。我的代码按预期工作,但出现此错误。

错误:

[Angular] Identifier 'compartmentOpen' is not defined. The component declaration, template variable declarations, and element references do not contain such a member

我试过使用 ngIf 在元素的模板中定义它,如下所示:#compartmentOpen 它使错误消失,但随后代码无法运行,因为它试图获取整个元素的真实性。

我也试过这样定义它: 车厢打开; 在组件中,但这并没有做任何事情。

模板:

<div class="container">
  <div #compartmentOpen
    (mouseover)="compartmentOpen = true"
    (mouseout)="compartmentOpen = false"
    class="inner-container">



    <div class="grid-center">

      <div class="z-bottom"
        *ngIf="compartmentOpen"> Facebook Login coming soon!
        <br>
        <br>
        <br>
        <br>
      </div>


      <button (click)="googleLogin()"
        class="btn btn-primary google-btn-size animated bounce">
        Login with Google
      </button>
      <br>

      <div id="wave">
        <span class="dot dot-ani"></span>
        <span class="dot dot-ani"></span>
        <span class="dot dot-ani"></span>
      </div>
    </div>
  </div>
</div>

组件:

import { AuthService } from './../auth.service';
import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'app-login',
  templateUrl: './login.component.html',
  styleUrls: ['./login.component.css']
})
export class LoginComponent {

  constructor(private auth: AuthService) { }

  googleLogin() {
    this.auth.googleLogin();
  }

}

最佳答案

实际上你的问题是你试图用原始 bool 值替换模型。 compartmentOpen 在你的例子中是一个 div 元素模型,包含很多东西。好消息是您可以像这样扩展您的模型

<div #compartmentOpen
    (mouseover)="compartmentOpen.open = true"
    (mouseout)="compartmentOpen.open = false"
    class="inner-container">

你的*ngIf语句将是

    *ngIf="compartmentOpen.open"

所有这些都将按您的需要正常运行。

关于angular - 组件声明、模板变量声明和元素引用不包含此类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48992824/

相关文章:

javascript - Unhandled Promise rejection : push. on is not a function

javascript - 使用 Object.values(map) 时,类型 'values' Typescript 上不存在属性 'ObjectConstructor'

java - 在嵌套类 JAVA 中使用变量

bash - 获取文件名的一部分

angularjs - 如何在 Angular2 中使用 Owl Carousel ?

Angular 9 项目在生产环境中不起作用

javascript - Angular 2为每个数组对象添加键和值

javascript - 如何创建可以在 Angular 4 中的所有组件中访问的全局变量和函数

ruby - 在 Chef 资源之间传递变量

javascript - 已经完成 Angular 取数据后如何将数据一一显示