0

子コンポーネントに双方向バインディングを実装する際に問題が発生しています。したがって、私の目標は、配列に新しいオブジェクトが追加/削除されたときに、親コンポーネントの配列にもその変更が反映されるようにすることです。より詳細なコードを次に示します。

親コンポーネント コントローラ:

export class ParentController {
    selectedItems = [];
}

親コンポーネント html:

<list-selector selectedItems="$ctrl.selectedItems"></list-selector>

子コンポーネント:

export var listSelectorComponent: IComponentOptions = {
    bindings: {
        selectedItems: "="
    },
    controller: childController
};

子コントローラー:

export class listSelectorController {

    selectedItems = [];

    addToSelectedItems(){
        this.selectedItems.push({name:'First Item'});
    }
}

これは私が得ているエラーです。バインディングに関係していると確信していますが、何が悪いのかわかりません。どんなアドバイスでも大歓迎です!

Error: [$compile:nonassign] Expression 'undefined' in attribute 'selectedItems' used with directive 'listSelector' is non-assignable!
4

1 に答える 1

2

あなたの問題は確かにあなたの拘束力にあります。親コンポーネントの html を次のように変更するだけです。

<list-selector selected-items="$ctrl.selectedItems"></list-selector>

そして、あなたは行ってもいいです。like-thisバインディング プロパティは常に camelcase である必要がありますが、html タグの属性は である必要があることに注意してくださいlikeThis

于 2016-11-08T03:40:03.947 に答える