【发布时间】:2020-03-02 23:49:57
【问题描述】:
我需要一个关于我哪里做错的建议......
我有一个小的 Angular 应用程序,一切正常,但在浏览器控制台中,我可以看到如下错误消息:
core.js:4002 ERROR TypeError: Cannot read property 'IS_DATABASE_ACCESSIBLE' of undefined
at Object.eval [as updateDirectives] (DashboardDefaultComponent.ngfactory.js:76)
at Object.updateDirectives (core.js:29785)
at checkAndUpdateView (core.js:29438)
at callViewAction (core.js:29679)
at execComponentViewsAction (core.js:29621)
at checkAndUpdateView (core.js:29444)
at callViewAction (core.js:29679)
at execEmbeddedViewsAction (core.js:29642)
at checkAndUpdateView (core.js:29439)
at callViewAction (core.js:29679)
我想摆脱它们,但不知道如何。
default.component.ts [编辑版本]
import { Component, OnInit } from '@angular/core';
import { OracleDatabaseService } from '../../services/oracle-database.service';
// ***************
// ** Classes
// ***************
import { clsDatabase } from '../../classes/clsDatabase.js';
@Component({
selector: 'app-default',
templateUrl: './default.component.html',
styleUrls: ['./default.component.css']
})
export class DefaultComponent implements OnInit {
database_availability : clsDatabase;
constructor(
private oradb : OracleDatabaseService,
) { }
ngOnInit() {
this.Get_Database_Accessibility();
}
Get_Database_Accessibility(): void {
// Get database status before autorefresh
this.oradb.Query_Database_Accessibility().subscribe(database_availability => this.database_availability = database_availability);
}
}
clsDatabase.js
export class clsDatabase = {
IS_DATABASE_ACCESSIBLE : string
}
default.component.html [编辑版本]
<!--
*************************************************************************
** Template
*************************************************************************
-->
<ng-template #EnterpriseManagerDatabaseAvailability let-databaseaccessible="databaseaccessible">
<div *ngIf="databaseaccessible === 'Yes'; then dbisup else dbisdown">This is ignored</div>
<ng-template #dbisup>
<app-summary-v1></app-summary-v1>
</ng-template>
<ng-template #dbisdown>
<app-oem-inaccessible></app-oem-inaccessible>
</ng-template>
</ng-template>
<!--
*************************************************************************
** Rendering
*************************************************************************
-->
<ng-container *ngTemplateOutlet="EnterpriseManagerDatabaseAvailability;context:{databaseaccessible:database_availability.IS_DATABASE_ACCESSIBLE"></ng-container>
oracle-database.service [代码摘录]
// ****************************
// ** Classes
// ****************************
import { clsDatabase } from '../classes/clsDatabase';
// *************************
// ** Check the database accessibility
// *************************
Query_Database_Accessibility(): Observable<clsDatabase> {
const url = this.rootUrl +'DatabaseAccessibility';
return this.http.get<clsDatabase>(url);
【问题讨论】:
-
你必须注入它或创建一个对象或设置默认值:
constructor( private database_availability : clsDatabase) -
@Prashant Pimpale 还不够吗?从 '../../classes/clsDatabase.js' 导入 { clsDatabase };
-
删除课堂上的
=。使用export class clsDatabase { IS_DATABASE_ACCESSIBLE : string } -
@varman。尝试在课堂上不使用 =,但在控制台中出现同样的错误
-
向我们展示您收到的回复。
.subscribe(res=>{console.log(res)})
标签: angular