Angular2:JsonObject为@Input值

时间:2016-03-13 14:03:16

标签: typescript angular

Angular2:2.0.0-beta8

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

我在模板中使用的指令:

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

在我的指令中输入:

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

Param对象定义:

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

可悲的是,它不起作用。也许是Json解析的原因?

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

1 个答案:

答案 0 :(得分:4)

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

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

这是标准属性绑定,其中不涉及Angular。

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

属性只能包含字符串。 @Input()在字符串化后读取属性中的值。

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