我有一个定义明确的模型,如下所示:
export class Navigation {
line: {
_id: string;
code: string;
name: string;
isVia: boolean;
_operator: {
_id: string;
name: string;
};
via: {
_id: string;
name: string;
}
};
hour: string;
destiny: string;
}
在某个页面上,我在构造函数之前从变量开始,并且这样做:
public navigation: Navigation = new Navigation ();
下面的 constructor
我正在这样做:
this.navigation.destiny = 'center';
this.navigation.line.isVia = false;
this.navigation.line.via.name = 'No path to this line';
我可以访问hour
和destiny
属性,但是例如 line 的属性不起作用。在我的控制台上出现以下错误:
ERROR Error: Uncaught (in promise): TypeError: Can not set property 'isVia' of undefined TypeError: Can not set property 'isVia' of undefined
我需要使用模型数据。
可以是什么以及如何安排?
尝试
- 公共(public)导航:Navigation = {};
- 公共(public)导航:Navigation = new Navigation;
- 公共(public)导航:导航;并在 this.navigation = Navigation() 构造函数中;
这两个都会发生相同的错误。
场景
我正在 ionic 2
中开发基本上它适用于 angular 4
并使用typescript
作为一种语言。当我在“ionic 4”中创建页面时,它会在( .html
、 .ts
、 .scss
、 .modeule.ts
) .ts
中生成文件。文件控制我的页面,在其中我可以轻松操作我的所有 html
,向服务器发出请求并在运行时轻松地在屏幕上进行更改。为了更好的开发我采用了 models
的思路为了标准化我在运输时接收和接收的内容,基于此,我接收/发送的所有内容都有 model
的公式。该模型是一个单独的文件,以防我的模型在我的 .ts
中以完整形式(即每个文件)表示。我的页面的我正在实例化这个我的模型,说我的 navigation
变量将采用我的模板 Navigation
的形式在我的构造函数添加一个值后不久,因为我通知您在我的 html 中使用它。此时我正在尝试我在这个问题中表达的错误。
为了重现该错误,需要使用 complex
model
,也就是说它有对象对象,可以在我的根中观察到我在根中有值( destiny
, hour
)和 line
该对象内的对象我还有其他对象,我无法从 line
访问该对象里面什么也没有。
最佳答案
您的模型尚未初始化。将您的模型更改为:
export class Navigation {
line:any= {
_id: undefined,
code: undefined,
name: undefined,
isVia: undefined,
_operator: {
_id: undefined,
name: undefined,
},
via: {
_id: undefined,
name: undefined,
}
};
hour: undefined;
destiny: undefined;
}
关于javascript - 从 JavaScript 模型中的现有属性返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46850145/