3

私はAngular初心者なので、この投稿をなぞる無知を許してください。

詳細:

私はCodeIgniterwithAngular.jsを使用していますが、アプリケーションで多くのプラグインを初期化するという概念につまずいています。使用したいプラグインが 5 つほどあります (ドロップダウン、スライダーなど)。

質問:

次のようなプラグインを初期化する方法の例をオンラインで見ました。

embroidery.directive( 'f-foundation', function() {
    return {
            restrict: 'A', 
        link: function( scope, element, attrs ) {
            // each element is needing a explicit init
            element.foundation( 'dropdown', 'start' );
        }   
    }
});

そのディレクティブは、次のようにドロップダウン要素に適用されます。

<select f-foundation>
    <option>test infomation</option>
</select>

これには、異なるディレクティブで各プラグインを初期化する必要があります。もっと良い方法があるはずです。

しかし、すべてのプラグインを同時に初期化できる方法があるかどうか疑問に思っています。Angular を使用していなかった場合、単純なplugin_init()関数が

$( element ).chosen();
$( element_2 ).toolbar();
$( document ).foundation(); //etc

Angular の概念がありませんか? 何か助けはありますか?

4

1 に答える 1

0

コンセプトが欠けているとは思いません。実際、コンセプトは関心の分離です。

現時点では、プラグインを初期化するだけでやり過ぎに思えるかもしれませんが、長期的には、ディレクティブを拡張する柔軟性が得られます。プラグインの初期化にオプションを渡していないため、やり過ぎのように思えますが、アプリケーションが成長するにつれて、すべてのインスタンスが異なる構成になります。

ディレクティブを、マークアップと使用している特定のプラグインの間のアダプターと考えると役立つかもしれません。プラグインを変更する必要がある場合 (つまりchosen=> select2)、ディレクティブの内容を書き直すだけで済みます。

EDIT:少し考えた後、あなたが構築しているアプリのサイズと範囲を知りません。多分それはやり過ぎです。その場合、角度を使用してそれらを初期化しないでください。提案どおりに実行してください。連絡先フォームを備えた 1 ページのマーケティング サイトである場合は、ディレクティブを使用しないことをお勧めします。

于 2013-08-09T15:21:46.800 に答える