4

问题:

我无法让函数成功传递给降级的 Angular 2 组件。我已经尝试了几乎所有我能想到的传递东西的方法,但我只能通过字符串插值 -> some-attribute={{controller.property}} 获取传递的字符串。以下是我尝试过的一些事情(是的,我知道其中一些没有意义......)

some-function="controller.function";
some-function="{{controller.function}}";  //<-- works for data, not functions
[some-function]="{{controller.function}}";
[someFunction]="controller.function";
[(someFunction)]="controller.function";

设置:

这是我现有的设置,它适用于数据但不适用于函数:

Angular 1 用法

<my-component data-input-name="{{controller.name}}"></my-component>

升级/降级适配器

angular.module('myModule').directive('myComponent',
    downgradeComponent({
      component: MyComponent, 
      inputs: ['inputName']
    }) as angular.IDirectiveFactory);

Angular 2 定义

@Component({
  selector: 'my-component',
  templateUrl: './my.component.html',
  styleUrls: ['./my.component.css']
})
export class MyComponent implements OnInit {

  @Input() inputName: any;

  constructor() {}
}

Angular 文档甚至展示了如何设置它,但没有给出任何实际使用示例。我错过了什么还是不能这样做?

4

1 回答 1

2

像这样使用 AngularJS 烤肉串案例,似乎对我有用:

<my-component [data-input-name]="controller.name">
</my-component>
于 2017-06-20T11:45:43.470 回答