javascript - 从 JavaScript 模型中的现有属性返回未定义

标签 javascript angular typescript

我有一个定义明确的模型,如下所示:

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';

我可以访问hourdestiny属性,但是例如 line 的属性不起作用。在我的控制台上出现以下错误:

ERROR Error: Uncaught (in promise): TypeError: Can not set property 'isVia' of undefined TypeError: Can not set property 'isVia' of undefined

我需要使用模型数据。

可以是什么以及如何安排?

尝试

  1. 公共(public)导航:Navigation = {};
  2. 公共(public)导航:Navigation = new Navigation;
  3. 公共(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 ,也就是说它有对象对象,可以在我的根中观察到我在根中有值( destinyhour )和 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/

相关文章:

typescript - Aurelia Typescript 项目仅适用于 Chrome

javascript - IPFS Angular11 ipfs-http-client new IpfsHttpClient = 错误 : export 'AbortController' , Multiaddr

typescript - D3 事件 : Type definitions in version 6+

javascript - 按字母顺序排列的复选框输入类型

javascript - 使用 lodash 将对象数组排序为 Top N,其中 n+1 为 "others"

angular - 如何将第三方库连接到 Angular 4 以用作服务

javascript - Angular :使用 ngFor 为段落设置不同的颜色

typescript - 如何从构造函数调用返回而不将属性标记为未定义?

javascript点击被调用两次或更多

javascript - 如何更改 AmCharts 的图例标签文本?