Angular2:JsonObject作为@Input值

plo*_*ne1 4 typescript angular

Angular2:2.0.0-beta8

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

我的指令在模板中使用:

<div my-directive="{param1: 46, param2: 48}"></div>
Run Code Online (Sandbox Code Playgroud)

在我的指令中输入:

@Input('my-directive')
public conf: Configuration;
Run Code Online (Sandbox Code Playgroud)

参数对象定义:

export interface Configuration{param1;param2; ...}
Run Code Online (Sandbox Code Playgroud)

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

  • 如何获得它的作品?
  • 我是否应该在组件上创建此“ Param对象”,然后使用变量将其传递给模板?
  • 有最佳做法吗?

Gün*_*uer 5

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

[my-directive]="{param1: 46, param2: 48}"
Run Code Online (Sandbox Code Playgroud)

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

<div my-directive="{param1: 46, param2: 48}"></div>
Run Code Online (Sandbox Code Playgroud)

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

提示:对于输入名称,输出名称和指令名称myDirective,优先于my-directive。仅元素名称my-element用于自定义元素兼容性。