1

「foo」というコンポーネントを作成しようとしています。このコンポーネントはラベルを取り、「hello {{$ctrl.label}}」と表示します。また、クリック時にコールバック関数を呼び出します

<foo label="'bar'" callback="$ctrl.myCallback()"</foo>

これまでのところ、すべて順調です。私のコントローラーは実際にコールバックを取得します

だから今、私はこの要素を ng-repeat に入れました: <foo ng-repeat="item in $ctrl.items" label="item.label" callback="$ctrl.myCallback(item)></foo>

クリック時にコントローラーに戻すものをコンポーネントで定義するにはどうすればよいですか? コンポーネントはitem渡されておらず、「ラベル」のみが渡されています。

私が読んだことから、私は次のようなことを言う必要があります this.callback({item: SomeObject});

ここで 2 つの質問があります。1) コンポーネントは「item」キーを提供する必要があることをどのように認識し、2) コンポーネントは SomeObject が何であるかをどのように認識しますか?

別の ng-repeat でコンポーネントを簡単に再利用できます。 <foo ng-repeat="order in $ctrl.orders" label="order.orderNum" callback="$ctrl.myCallback(order)></foo>

この場合、コンポーネントは注文オブジェクトをパラメーターとしてクリック コールバック関数に送信することをどのように認識しますか?

4

1 に答える 1