1

これはあなたが見ることができるプランカーの例です: http://plnkr.co/edit/NQT8oUv9iunz2hD2pf8H

Web コンポーネントにしたいディレクティブがあります。私は AngularJS でそれを達成する方法についていくつかの方法を考えましたが、その一部に問題があります。別の方法を教えてくれるのではなく、誰かが私の失敗を説明してくれることを願っています。

css クラスやサブコンポーネントなどを含むシェルをセットアップするディレクティブ コンポーネントがあると想像してください。ただし、ユーザーはコンポーネントのメイン コンテンツを定義できます。次のようなもの:

<my-list items="ctrl.stuff">
    <div>List Item: {{ item.name }}</div>
</my-list>

list ディレクティブの HTML は次のようになります (OOCSS を使用):

<ul class="mas pam bas border--color-2">
    <li ng-repeat="items in item track by item.id" ng-transclude></li>
</ul>

通常、これはリンク機能でディレクティブ スコープを新しいコンテンツにリンクすることで解決できます。そして、それは他のコンポーネントでも機能します。ただし、ng-repeat を導入すると、コントロールのその部分が壊れているようです。私が知る限り、適切な場所は compile 関数かもしれませんが、ドキュメントには transcludeFn パラメーターが非推奨になると書かれているため、どうすればよいかわかりません。

また、ベータ版の AngularJS を使用する場合、バグまたは新しいパラダイムが発生する可能性があることにも注意してください。これはもはや問題ではありません。トランスクルージョンされたコンテンツは、常にディレクティブ スコープと外部コントローラー スコープにアクセスできるようです。

これについての啓蒙に本当に感謝しています。

4

1 に答える 1