【问题标题】:Angular2 input variable name mapping rule?Angular2输入变量名映射规则?
【发布时间】:2016-04-24 08:42:39
【问题描述】:

我在这里看一个Angular2教程源代码:

http://plnkr.co/edit/AHrB6opLqHDBPkt4KpdT?p=preview

发现父组件有

[my-prop]="value"

但子组件中不存在名称“my-prop”。 相反,孩子使用名称“myProp”。

@Input() myProp: any;

是否有一些隐藏规则将“map-prop”映射/翻译为“myProp”?

【问题讨论】:

    标签: typescript angular


    【解决方案1】:

    您可以使用以下内容:

    @Input('my-prop') myProp: any;
    

    能够在模板中这样使用:

    <comp [my-prop]="someExpression"></comp>
    

    【讨论】:

    • 但是样本没有@Input('my-prop'),只有@Input()。该示例如何工作?
    • 你的 plunkr 已经很老了,而且只能使用 alpha 版本;-)
    • 这不适用于测试版。看到这个 plunkr:plnkr.co/edit/9c3VEdeBvTmPWXQnBMB3?p=preview。这是重构的测试版!
    • 使用最新的测试版,只有在@Input中指定my-prop才有效...
    • 啊,谢谢你的信息。很高兴听到它在新版本中不再起作用。
    【解决方案2】:

    我对样本做了一些测试。 刚刚发现系统似乎自动将 [] 内的名称(连字符分隔)转换为驼峰式变量名称进行映射!

    所以

    my-prop // can map to [myProp]
    my-p-rop // can NOT map to myProp]
    my--prop // can NOT map to [myProp], somehow
    a-var-name // can map to [aVarName]
    

    但是为了代码质量,真的不建议使用这个功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-10
      • 2020-10-18
      相关资源
      最近更新 更多