Angular 2 组件@Input 不起作用

2024-02-27

我一直试图将属性值传递到我的组件中。从我读到的一切看起来都是正确的。但它仍然不起作用。我的测试值以空值输出到屏幕和控制台。 :(

这是我的测试组件:

import {Component, Input} from 'angular2/angular2';

@Component({
    selector: 'TestCmp',
    template: `Test Value : {{test}}`
})

export class TestCmp {

    @Input() test: string;

    constructor()
    {
        console.log('This if the value for user-id: ' + this.test);
    }
}

这就是我从父页面调用组件的方式。

<TestCmp [test]='Blue32'></TestCmp>

当页面呈现时,测试值为空。我只看到“测试值:”。

而不是“测试值:Blue32”。


我可以注意到你有四件事:

  • 您正在根组件中传递输入,这是行不通的。
  • 正如 @alexpods 提到的,您正在使用 CamelCase。你不应该。
  • 您正在传递一个表达式而不是一个字符串[test]。这意味着 angular2 正在寻找一个名为的变量Blue32而不是传递原始字符串。
  • You are using the constructor. That will not work, it must be after the view has been initialized data-bound properties have been initialized (see docs for OnInit https://angular.io/docs/ts/latest/api/core/OnInit-interface.html).

因此,通过一些修复,它应该可以工作

示例已更新至 beta 1

import {Component, Input} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser';

@Component({
  selector : 'childcmp',
  template: `Test Value : {{test}}`
})
class ChildCmp {
    @Input() test: string;
    ngOnInit() {
        console.log('This if the value for user-id: ' + this.test);
    }
}

@Component({
    selector: 'testcmp',
    template : `<childcmp [test]="'Blue32'"></childcmp>`
    directives : [ChildCmp]
})
export class TestCmp {}

bootstrap(TestCmp);

看到这个plnkr http://plnkr.co/edit/CO7kmS?p=preview举个例子。

Update

我看到人们仍然达到这个答案,所以我将 plnkr 更新到 beta 1,并纠正了解释中的一点:您可以在 ngAfterViewInit 中访问输入,但您可以在 ngOnInit 的生命周期的早期访问它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 2 组件@Input 不起作用 的相关文章

随机推荐

  • 将日期时间插入 SQLite 数据库

    我试图将时间插入数据库 但是当我打印插入的时间时 它不正确 我在将时间变量插入数据库之前打印了它 它是 12 01 09 149059 我用的时候效果很好strftime但我换了 因为时间已经到了 from datetime import
  • Bootstrap 轮播显示下一张和上一张图像

    引导程序轮播是否可扩展以在滑块中显示下一个和上一个图像 div class carousel slide ol class carousel indicators li class active li li li ol div
  • React Native Android:方法不会覆盖或实现超类型的方法

    我已经添加react native fbsdk到我的 React Native 项目并让它在 iOS 上正常构建 但在android方面 我无法让gradle来构建项目 当尝试编译react native fbsdk时 我遇到了 方法不会覆
  • eclipse 4 RCP 应用程序中启动屏幕上的进度条

    我想在 Eclipse 4 RCP 初始屏幕上添加一个进度条 我已经尝试了以下代码和设置 但仍然无法获取进度条 org eclipse ui SHOW PROGRESS ON STARTUP true 在plugin customizati
  • 将大对象插入 Postgresql 返回 53200 Out of Memory 错误

    PostgreSQL 9 1 NPGSQL 2 0 12 我想将二进制数据存储在 postgresql 数据库中 大多数文件加载良好 但是 大型二进制 664 Mb 文件会导致问题 当尝试通过 Npgsql 使用大对象支持将文件加载到 po
  • DropDownList 的 MVC2 编辑器模板

    过去一周的大部分时间我都在深入研究 MVC2 中的新模板功能 我很难让 DropDownList 模板正常工作 我一直在努力解决的最大问题是如何将下拉列表的源数据获取到模板 我看到很多示例 您可以将源数据放入 ViewData 字典 Vie
  • LoadError: 无法加载此类文件 -- capybara 独立代码

    我正在使用 Ruby 和以下教程构建一个简单的后挖矿程序 http ngauthier com 2014 06 scraping the web with ruby html http ngauthier com 2014 06 scrap
  • 自定义 Spring Bean 参数

    我正在使用 activator 上发布的 Spring Akka 示例来创建 Spring 托管 bean actor 这是我当前使用的代码 包括演示类 Component class Test extends UntypedActor A
  • 检查 Asp.Net(Core) 应用程序是否托管在 IIS 中

    如何检查应用程序是否托管在 IIS 中 检查环境变量 APP POOL ID 是否设置 public static bool InsideIIS gt System Environment GetEnvironmentVariable AP
  • Android 应用程序基 64 公钥

    如何获取 或查看 Android 应用程序 Base 64 公钥 我有许可证文件 并且我之前已经发布过我的应用程序 我需要许可密钥 要查找您的应用程序的公共许可密钥 请执行以下步骤 1 登录您发布应用的 Google Play 开发者控制台
  • 理解主定理

    通用形式 T n aT n b f n 所以我必须将 n logb a 与 f n 进行比较 if n logba gt f n is case 1 and T n n logb a if n logba lt f n is case 2
  • Symbian 的不同版本

    我必须在 Symbian 中构建一个项目 我有一些困惑 并有一些与 Symbian 版本相关的问题 有什么区别Symbian 3 S60 3rd edition and S60 5th edition 从编码角度来看 与 Symbian 3
  • 为同一轴上的抽动设置不同的颜色

    是否可以在同一轴上使用不同颜色或样式的抽动 tics 0 1 1 5 2我想要0和2有色red or bold 非常适合multiplots其中有关于相同测量值的图 并且您希望在不同的图中标记 y 或 x 范围 但又不会使其过载太多 现在对
  • 只比较时间,不比较日期?

    我需要编写一个方法来检查是否Time now位于商店的营业时间和打烊时间之间 营业时间和营业时间被保存为 Time 对象 但我无法直接比较它 因为商店将营业时间保存在2012 2 2所以开放时间大概是这样的 2012 02 02 02 30
  • Passport.js 中的本地和 Google 策略:序列化用户时出现问题

    我一直试图理解为什么即使身份验证本身正在工作 我也无法让用户在经过身份验证后保持登录状态 我什至在这里发布了一个问题 Passport js 本地策略未进行身份验证 https stackoverflow com questions 515
  • Google 服务的 Android 版本冲突

    我已经为此搜索了很多解决方案 但没有一个适合我的具体情况 我在 Gradle Sync 上收到此错误 错误 任务 app processDebugGoogleServices 执行失败 请通过更新 google services 插件的版本
  • 如何直观地显示 java ResultSet?

    我正在寻找一种在屏幕上显示 java sql ResultSet 的方法 最好内置于java或swing中 如果这两个都没有一个简单的好方法 我会考虑 spring How 循环 ResultSet 的结果并将其放入 TableModel
  • 如何在 Google 电子表格中添加标题

    我在用gdata spreadsheet 3 0jar 用于在 Google 电子表格中输入数据 我在用 new ListEntry getCustomElements setValueLocal Header Name Value 但我不
  • 有没有一种简单的方法来扩展现有的激活函数?我的自定义 softmax 函数返回: 操作具有“无”梯度

    我想通过仅使用向量中的前 k 个值来实现使 softmax 更快的尝试 为此 我尝试为张量流实现一个自定义函数以在模型中使用 def softmax top k logits k 10 values indices tf nn top k
  • Angular 2 组件@Input 不起作用

    我一直试图将属性值传递到我的组件中 从我读到的一切看起来都是正确的 但它仍然不起作用 我的测试值以空值输出到屏幕和控制台 这是我的测试组件 import Component Input from angular2 angular2 Comp