我正在尝试将我的 AngularJS 应用程序迁移到 Angular。
我有一些带有绑定的组件需要转换为 Angular
AngularJS 代码:
<my-comp test="test.data" otherData="test.otherData"><my-comp>
我的comp.ts:
export default {
template: html,
bindings: {
test: '<',
otherData: '=',
},
}
我的comp.html:
<div ng-repeat="val in $ctrl.test">
{{ val }}
</div>
输出:1 2 3
现在我已将 my-comp.ts 从 AngularJS 迁移到 Angular
我的comp.ts:
export class MyCompComponent implements OnInit {
@Input() test: any;
@Input() otherData: any;
ngOnInit() {
console.log('test: ', this.test); // prints "test.data"
console.log('otherData: ', this.otherData); // prints "test.otherData"
}
}
我的comp.html:
{{ test }}
实际输出:“test.data”
预期输出:1 2 3
我正在使用 @Input 与 '=' 和 '<' 进行绑定
我降级了更新的组件,以便它可以在 AngularJS 代码中使用
<my-comp test="test.data" otherData="test.otherData"><my-comp>
无需将其写为
<my-comp [test]="test.data" [otherData]="test.otherData"><my-comp>
更新:
使用 NgUpgrade,我们可以在 AngularJS 模板中使用 Angular 组件(降级)并将带有 [] 的输入作为常规 Angular 输入传递
<my-comp [test]="test.data" [otherData]="test.otherData"><my-comp>