1. ホーム
  2. javascript

[解決済み] AngularJSのディレクティブで `replace` プロパティが非推奨なのはなぜですか?重複

2022-10-09 23:58:09

質問

によると API ドキュメントによると によると、ディレクティブの replace 属性は非推奨です。従って、将来的には、すべてのディレクティブは現在のデフォルトである replace: false .

これは、開発者が要素ディレクティブの要素を置き換える機能を削除するもので、この機能の代わりとなるものは明らかではありません。

参照 このplunk の有無に関わらず、要素ディレクティブがどのように動作するかの例です。 replace: true .

なぜこの便利な属性が、代替もなく非推奨になるのでしょうか?

どのように解決するのですか?

アップデイト

協力者の一人は、削除はされないが、既知のバグは修正されないと述べています。 https://github.com/angular/angular.js/commit/eec6394a342fb92fba5270eee11c83f1d895e9fb#commitcomment-8124407

オリジナル

この変更のコミットはこちらです。 https://github.com/angular/angular.js/commit/eec6394a342fb92fba5270eee11c83f1d895e9fb

replace フラグは、ディレクティブが乗っている要素を置き換えるために使用されます。 フラグは、次のメジャーバージョンで削除される予定です。 この機能はセマンティクスが難しく(例:属性がどのようにマージされるか)、解決することと比べてより多くの問題を引き起こします。 があり、解決できる問題と比較してより多くの問題を引き起こします。また WebComponentsでは、DOMにカスタム要素を持つことは普通です。

複雑さとサポートを維持するための利点の組み合わせのように聞こえます。

そして、開発者がこれを使う理由のひとつは、意味的に正しいマークアップが注入されることを好むため、カスタムディレクティブタグを置き換えることだったようです。


このリンクの下の方にあるコメントを読むと、どうやら多くの人がこのままであることを望んでいるようです。