-1

JSONでサーバーからデータを取得しており、それをviewModal. 今、 return を使用して新しいビューをロードしていますrouter.navigate('results')。しかし同時にviewModel、JSON オブジェクトから作成した をこのビューに渡す必要があります。デフォルトでは「結果」viewModelが呼び出されますが、値は空白です。Durandal JS は初めてなので、小さなコード スニペットが役に立ちます。

4

3 に答える 3

1

私が持っている最良の答えは、次のように、その情報を別のモジュールに保存することです。

storage.js

define(function(require) { return []; });

viewmodel.js

define(['storage'], function(storage) {

    $.get('uri', function(data) {
        data.forEach(function(obj) {
            storage.push(obj);
        });
    }); 
});

これは最も洗練されたソリューションではありません。アクティベーション時にビューモデルからデータを渡したり、ビューモデルを分離したりするためのクリーンな方法があるかどうか、私は本当に興味がありますが、これまでのところ何も見つかりませんでした。

于 2013-10-10T16:56:12.890 に答える
1

最終的にはこんな感じになりました。

  1. ナビゲートしたいモジュールで、JSON オブジェクトを受け入れる「初期化」関数を作成しました。この JSON オブジェクトを使用して、viewModel のすべてのプロパティを初期化しました。
  2. そこからナビゲートする必要があるページから、次にナビゲートしたいモジュールで「require」を行いました。次に、「Initialize」メソッドを呼び出して、JSON オブジェクトを渡しました。
  3. この後、 router.navigate メソッドを使用してそのモジュールに移動しました。

このようにナビゲートすると、あるビューから別のビューに渡したいすべての値を取得できました。このアプローチが他の誰かに役立つことを願っています。

于 2014-03-03T21:44:28.937 に答える