1

durandal テンプレートを使用して ASP.NET MVC プロジェクトに取り組んでいます。

私は問題に直面しており、より洗練された解決策を見つけるために助けが必要です。ヘッダー バー (青) とサイドバー (グレー) があります。どちらにも、新しいトランスポートを作成するための要素 (リンク) が含まれています。以下のスクリーンショットでは、これが箇条書き 1 と 2 で示されています。

ここに画像の説明を入力

私の考えは、次のように進めることでした:

  • これらの 2 つのリンクをクリックすると、次の場所に移動します#/newTransport
  • このモジュールのアクティブ化で、datacontext を呼び出して初期値を持つエンティティを作成し、作成されたトランスポートの ID を取得します。
  • 次に、(まだこのアクティベートで)私はnavigateTo#detailTransport/:id
  • 次に、この新しく作成されたトランスポート ID の詳細が表示されます

コードは次のとおりです。

var activate = function () {
    var id = datacontext.createTransport();
    var url = '#/detailTransport/' + id;
    router.navigateTo(url);
    return true;
};

したがって、この newTransport ビューは実際には表示されません。これを使用して、表示する前にトランスポートを作成できるリンクを作成しました。

私の問題は、それが最初にしか機能せず、さらにルーターのロジックが何らかの形で壊れているように見えることです。

コードをアクティブ化からビュー内のボタンに移動すると、もう問題はないことに気付きました。

履歴書の場合: このエンティティの詳細に移動する前に、いくつかのコードを実行する (エンティティを作成する) 必要があります。私の試み(上記で説明)はうまくいかないようです。

何か案が?

4

1 に答える 1

2

最初のクリックは、アクティブ化してからリダイレクトするルートではなく、ビューモデルのメソッドである必要があります。あなたが望むものについて混乱している可能性があります。アクティブ化でのナビゲートは、標準的な方法ではありません。最初のクリックをルート VM のメソッドにバインドするだけです。次に、ナビゲートします。

于 2013-03-31T12:48:56.040 に答える