无法访问我的控制器/构造函数的输入

2024-04-28

我有一个简单的 Angular 2 组件@Input,我将其绑定到模板。模板显示输入数据,但我无法从构造函数访问它:

import {Component, View, bootstrap, Input} from 'angular2/angular2';
import DataService from './data-service';

@Component({
    selector: 'app-cmp'
})
@View({
    template: `{{data.firstName}} {{data.lastName}}` //-> shows the correct 'data'
})
export default class NamesComponent {
  @Input() data: any;
  constructor(dataService: DataService) {
    console.log(this.data);//undefined
  }
}

这里有一个plunker http://plnkr.co/edit/pOAZQK?p=preview举个例子(参见“names-component.ts”)。

我究竟做错了什么?


因为Input在设置视图之前,属性不会被初始化。根据docs https://angular.io/guide/lifecycle-hooks,您可以访问您的数据ngOnInit method.

import {Component, bootstrap, Input, OnInit} from '@angular/core';
import DataService from './data-service';

@Component({
    selector: 'app-cmp',
    template: `{{data.firstName}} {{data.lastName}} {{name}}`
})
export default class NamesComponent implements OnInit {
  @Input() data;
  name: string;
  constructor(dataService: DataService) {
    this.name = dataService.concatNames("a", "b");
    console.log(this.data); // undefined here
  }
  ngOnInit() {
    console.log(this.data); // object here
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法访问我的控制器/构造函数的输入 的相关文章

随机推荐

  • 如何在phoenix中使用session连接?

    我有一个身份验证插头 我想测试我的控制器 问题是这个插头里的线有 user id get session conn user id 当我使用这种方法时它总是为零 我以前使用过dirty hack 但我不再想这样做 session Plug
  • 在 Django 中访问“媒体”文件

    我很喜欢 Django 但是开发环境中的静态和媒体文件业务让我抓狂 请把我从愚蠢中拯救出来 我在我的开发机器上 我有文件夹media在我的项目目录的根目录中 In settings py我有 MEDIA ROOT and MEDIA URL
  • 检查 PHP 数组中特定值的出现次数 [重复]

    这个问题在这里已经有答案了 我有一个名为 uid 的数组 如何检查值 12 在我的 uid 数组中出现了多少次 几种方法 cnt count array filter uid function a return a 12 or tmp ar
  • java.io.IOException:无法获取 LocationBlock 的块长度

    我正在使用 HDP 2 1 对于集群 我遇到了以下异常 并且 MapReduce 作业因此失败 实际上 我们定期使用 Flume 版本的数据创建表 1 4 我检查了映射器尝试读取的数据文件 但我找不到任何内容 2014 11 28 00 0
  • 如何修复阻止应用程序引擎部署的新错误? (Google 今天推送了 Cloud Tools SDK 更新后)

    我在用IntelliJ我正在部署到 Google App Engine 标准环境 我有一个Google 推送 Cloud Tools SDK 更新后出现新错误到我的开发机器 我无法再使用 IntelliJ 将当前或之前部署的工作版本部署到
  • 使用 gcc 在 C 中实现类型安全的可变参数

    很多时候 我希望函数接收可变数量的参数 例如以 NULL 结尾 define push stack t stack push VARARG NULL func push stack t stack char s va list args v
  • SQLite 上下文.MODE_PRIVATE

    我想知道 我们可以使用Context MODE PRIVATE in SQLite创建数据库以防止不必要的数据库访问 我在谷歌上没有得到任何例子 如何使用这个Context MODE PRIVATE在数据库中 请帮助我 提供任何链接或示例
  • Material UI v1.0.0 如何重写Stepper类来设置图标大小

    我现在正在迁移到新版本的 Material UI 我不得不说我有点困惑如何覆盖类 我需要使用Stepper https material ui next com demos stepper 使用替代标签 它对我有用 我能够覆盖根类来设置透明
  • 使用具有唯一订单号但重复订单组合的 arules 包的 R 篮子分析

    使用具有唯一订单号但重复订单组合的 arules 包进行 R 篮子分析 刚刚学习 R 我正在尝试使用 arules 包进行购物篮分析 但我完全接受任何其他包建议 来比较所购买的 6 种不同商品类型的所有可能组合 我的原始数据集如下所示 Or
  • 将 WPF DataGrid 导出到 Excel

    当我将 DataGrid 导出到 Excel 时 为什么我的值会发生变化 字符串 351732051316944 变为 3 51732E 14 和我的日期时间 2014 01 01 02 09 29 942 变为 41641 09035 我
  • 如何获取变量的内存大小?

    有谁知道如何获取变量的内存大小 int string struct等 并打印它 是否可以 var i int 1 I want to get something like this fmt Println Size of i is i Al
  • 在标题中使用“/”时,如何防止列不显示在 WPF 数据网格中? [复制]

    这个问题在这里已经有答案了 我的应用程序中有一个 WPF Datagrid 我将 ItemSource 的值设置为我构建的 DataTable 的 DefaultView 问题在于 每当我将 DataTable 中的一列的 ColumnNa
  • 实体框架中的聚合根支持

    我们如何告诉实体框架骨料 http domaindrivendesign org node 88 保存聚合时 保存聚合内的实体 删除聚合时 删除聚合内的实体 当两个不同的用户尝试修改同一聚合中的两个不同实体时引发并发错误 加载聚合时 即使在
  • 如何将数据框列名称插入方程 R 中? [复制]

    这个问题在这里已经有答案了 我试图通过引用数据框列名称并将其插入方程而不是直接调用名称来使一段代码更加灵活 尽管我必须直接插入字段名称 但以下示例有效 require e1071 class c 0 25 0 34 0 55 field1
  • 如何获取网页上的超链接以在文本编辑器中打开文件(Sublime Text)

    我正在开发一个大型静态网站 Jekyll 并且希望能够单击浏览器 Chrome 中页面上的链接 这将在本地计算机 Sublime 上打开其相应的源文件 我可以获得文件的绝对链接 从控制台 Ubuntu 我可以这样做 subl path to
  • PHP 致命错误:参数解包后无法使用位置参数

    Goal 我想写一个函数可变数量的参数 使用 https secure php net manual en functions arguments php functions variable arg list new使用相同的参数和新的参
  • 获取特定包中的数据集列表

    我想获取控制台中显示的特定 R 包中所有数据集的列表 我知道这个函数data 将列出加载的包中的所有数据集 那不是我的目标 我想获取特定 R 包中所有数据集的列表 以下尝试不起作用 data data arules Warning mess
  • 在“无头模式”下运行虚拟操作系统意味着什么?

    我已经听到很多关于新版本的 VMWare Fusion 如何以 无头模式 运行虚拟操作系统的信息 谷歌搜索清楚地表明其他虚拟化产品也具有类似的功能 但是 我无法找到这实际上意味着什么的很好的描述 当你这样做时会发生什么 无头模式意味着虚拟机
  • PHP:删除任何扩展名的文件?

    当用户上传照片时 它会检查他们是否已经拥有一张照片 如果他们这样做 我希望它删除旧的 可以有任何扩展名 然后放入新的 有没有办法在不从数据库获取旧扩展的情况下做到这一点 目前的代码 del members gt prepare insert
  • 无法访问我的控制器/构造函数的输入

    我有一个简单的 Angular 2 组件 Input 我将其绑定到模板 模板显示输入数据 但我无法从构造函数访问它 import Component View bootstrap Input from angular2 angular2 i