【问题标题】:Angular2: JsonObject as @Input valueAngular2:JsonObject 作为@Input 值
【发布时间】:2016-03-13 14:03:16
【问题描述】:

Angular2:2.0.0-beta8

我想自定义一个指令。为了实现这一点,我创建了一个包含所有自定义参数的对象,我希望像这样将它传递给我的模板:

我在模板中使用的指令:

<div my-directive="{param1: 46, param2: 48}"></div>

在我的指令中输入:

@Input('my-directive')
public conf: Configuration;

参数对象定义:

export interface Configuration{param1;param2; ...}

很遗憾,它不起作用。也许是 Json 解析的原因?

  • 如何让它工作?
  • 我是否必须在我的组件上创建这个“参数对象”,并使用变量将其传递给模板?
  • 是否有最佳做法?

【问题讨论】:

    标签: typescript angular


    【解决方案1】:

    如果要分配对象,请使用 [propName]="value" 语法

    [my-directive]="{param1: 46, param2: 48}"
    

    这是不涉及 Angular 的标准属性绑定。

    <div my-directive="{param1: 46, param2: 48}"></div>
    

    属性只能保存字符串。 @Input() 在字符串化后从属性中读取值。

    提示:对于输入、输出和指令名称,myDirective 优于 my-directive。只有元素名称使用my-element 来实现自定义元素的兼容性。

    【讨论】:

    • 呃,我的坏!谢谢..(也提示您!)
    • 在上述解决方案中,my-directive 将输入作为字符串,如何传递组件内部准备的动态 obj
    • @Runali 答案特别是关于传递一个对象,而不是一个字符串。抱歉,我不明白你的意思。
    猜你喜欢
    • 2016-09-24
    • 2017-09-18
    • 2016-06-21
    • 1970-01-01
    • 2016-10-24
    • 2016-09-18
    • 2016-05-24
    • 2017-02-17
    • 1970-01-01
    相关资源
    最近更新 更多