すべての属性とデータ構造が同じ角度1.5のコンポーネントがあります。私はそれらを単一のコンポーネントに再因子付けすることができると思いますが、type
属性の補間値に基づいてテンプレートを動的に選択する方法が必要です。 $attrs
の値はので、私はデータで渡されたで指定された型を得ないでしょうuninterpolatedされているので、私はtemplateUrl function($element, $attrs) {}
を使用することはできません角度1.5のコンポーネントに対して異なるテンプレートを動的にレンダリングする方法はありますか
var myComponentDef = {
bindings: {
type: '<'
},
templateUrl: // This should be dynamic based on interpolated type value
};
angular.module('myModule').component('myComponent', myComponentDef);
。
ng-if
またはng-switch
ディレクティブの一連の大きなテンプレートを1つだけ持つことができますが、テンプレートを別にしておきたいと思います。
また、コンポーネントを別にしておき、親コンポーネントにng-switch
などを使用することもできますが、これは多くの繰り返しのように思われます。
補間されたtype
をバインディングに渡して使用して、各タイプのテンプレートURLと一致させてコンポーネントをビルドするためのソリューションを探しています。
これは可能ですか?
おかげ
動的URLを設定することができ、私はこれがあるとは思いません'$ compile'サービスが必要です。コンポーネントには利用できません。あなたはディレクティブを使うことができます。 –
このシンプルで洗練されたソリューションをご覧ください:https://stackoverflow.com/a/41743424/1274852 – hkong