1

require を使用してロードされたノックアウトのコンポーネント間でアニメーション化されたトランジションを持つことは可能ですか? state() が変更されると、コンポーネントはフェード/スライドしますか?

過去に、fadeVisible で同様のことを行ったことがありますが、これは amd/require および新しいコンポーネント API では機能しないようです。何か案は?ありがとう :)

登録

// Register knockout components
ko.components.register('breadcrumb', { require: './Modules/Breadcrumb/Breadcrumb' });
ko.components.register('splash', { require: './Modules/Splash/Splash' });
ko.components.register('catalogue', { require: './Modules/Catalogue/Catalogue' });
ko.components.register('requests', { require: './Modules/Requests/Requests' });

使用法

   <div id="main">

        <breadcrumb></breadcrumb>

        <!-- ko if: state() === 'home' -->
        <splash></splash>
        <!-- /ko -->

        <!-- ko if: state() === 'catalogue' -->
        <catalogue></catalogue>
        <!-- /ko -->

        <!-- ko if: state() === 'requests' -->
        <requests></requests>
        <!-- /ko -->

   </div>

Fiddle:ノックアウト コンポーネントとコンポーネント間に遷移効果を適用する方法

4

1 に答える 1

-2

次の例のようなカスタム バインディングを作成します: http://knockoutjs.com/examples/animatedTransitions.html

実際、ドキュメントには、コントロール バインディング属性はコンポーネントの外側に配置する必要があると記載されています。

したがって、if や foreach などの制御フロー バインディングを使用する場合は、カスタム要素で直接使用するのではなく、カスタム要素をラップする必要があります。

ただし、仮想要素ではカスタム バインディングを使用できないため、ラッピング内にコンポーネントを配置する必要があります。div

http://knockoutjs.com/documentation/component-custom-elements.html

于 2014-09-10T14:50:25.130 に答える