通过输出绑定传递参数AngularJS

j8yoct9x  于 8个月前  发布在  Angular
关注(0)|答案(1)|浏览(62)

我不得不使用Typescript使用AngularJs 1.5.8进行设置:
我有一个包含目录(二维项目数组)的父组件。从这里我将目录中的每个列表传递给一个子组件:

...
export class ParentController {

    private catalog = []; //contains a list of lists

    ...

    private printCallback(item: any): void {
        console.log(item);
    }
}

模板:

<div ng-repeat="list in $ctrl.catalog">
    <child content="list" callback="$ctrl.printCallback(item)"></child>
</div>

现在,在子组件中,我再次遍历列表中的每一项。每当我点击列表中的一个项目时,我希望父母知道我点击的项目:

export class ChildComponent implements IComponentOptions {
template: any = require('./child.component.html');
public bindings: any = {
    content: '<',
    callback: '&'
};
controller: any = ChildController;
}

export class ChildController {

    public content: Array<any>;
    public callback;

    ...

    public onTrigger(item: any): void {
        this.callback(item);
    }
}

子模板:

<div ng-repeat"item in $ctrl.content">
    <button ng-click="$ctrl.onTrigger(item)">{{item.name}}</button>
</div>

现在我似乎无法在父组件的printCallBack()中打印item。我不知道我到底做错了什么,因为打印的唯一内容是 undefined。我四处寻找,找不到一个有效的解决方案。所以我希望你能帮我。

k0pti3hp

k0pti3hp1#

当回调时,像这样做:this.callback({item : item});,作为对象传递。

相关问题