2

私の目標は、Durandal の Bootstrap モーダル メカニズムを使用してアイテムの詳細ビューを表示することです。ビューモデル「itemdetail」と別のビューモデル「items」があるとします。Bootstrap の modal 要素は items.html にありますが、viewAttached 関数で itemdetail.js から呼び出されます。

ルーターを使用して (id 'myroute/:id' を渡すことにより) アイテムの詳細ビューに移動する方法を理解することはできましたが、ルーティングなしで構成する方法を理解できませんでした。私はそのようなものを期待します:

<div data-bind="compose: {model: viewmodels/myvm, activate:true, id:itemID}

私は使用し、観察可能で、いくつかの設定を渡すことができることを理解しています。しかし、設定に自分のパラメーターが含まれているかどうかはわかりません。

最終的には、この構成 (アイテムの詳細な説明) をブートストラップ モーダルに挿入し、itemdetails (attachedView) から呼び出したいと思います。

意味はありますか?それを行うより良い方法はありますか?

ありがとう、デビッド

4

5 に答える 5

3

twitter bootstrap modal call を使用してデータを渡す方がエレガントで簡単だと思います:

app.showModal('viewmodels/???', yourdataobject).then(function (result) {
            if (result) {

           }
);
于 2013-05-09T10:14:05.483 に答える
1

ところで、これはエレガントなソリューションだと思います。v2.0.1 を使用しています。

 <!-- ko compose: { model:'MyMODEL' , activationData:[YOUR_DATA] } -->
 <!-- /ko -->
....
function activate(YOUR_DATA){
    //Do something 

 }
于 2014-01-12T20:03:37.600 に答える
0

durandal 2.0 では、activationData オブジェクトを使用してパラメーターを渡す必要があります。

composition.compose(wrapper, {mode:..., view:..., activationData : {id:}}, context

あなたの場合: compose:{..., activationData:{itemId:X}}

于 2013-08-23T04:58:07.260 に答える
0

ビュー/ビューモデルの構成の一部としてパラメーターを直接含める方法はないと思います。パラメータは、構成プロセスによって直接処理されるのではなく、ルーターとナビゲーションによって処理されます。

ただし、構成するビュー モデルがシングルトン (Durandal のものなど) の場合は、手動でそれを要求し、(itemId などの) プロパティを設定してから、構成を正常に実行させることができます。ビューモデルには、アクティブ化関数が呼び出されたときに itemId プロパティが設定されています。
または、何をしようとしているのかによっては、 activate 関数を手動で呼び出して、独自の「コンテキスト」オブジェクトを渡すこともできます。この場合、作成バインドで activate: false を設定することをお勧めします。

activate 関数の引数としてそれを取得するのとまったく同じではないことはわかっていますが、あなたがやろうとしていることを達成する方法を提供するかもしれません.

于 2013-04-08T12:01:14.417 に答える