1

Duranrdal を使用して初めてア​​プリを構築します。chrome 開発者ツール コンソールを使用して、さまざまなページのビュー モデルの値を読み込み時に検査できるようにしたいと考えています。

問題は、私が見ることができるwindow.Durandalまたはwindow.MainAppがないことです。main.js 定義関数でこれを行うことができます。

window.myApp = app;

しかし、それはハックのようで、実際には現在のビューモデルへのハンドルが得られません。ルーターで同様のコードを実行することだけを考えましたが、これも本当に醜いです。

私のアプリと現在の VM は、より明確な方法でアクセスできますか? おそらく、モジュールをロードするときのrequire.jsは、DOMのどこかにその参照を置きますか? ルーターのハンドルを取得できれば、問題ないと思います。

また、モーダル ダイアログをサポートする VM へのハンドルを取得することにも興味があります。ルーターやその他の部分からそれを取得できるかどうかはわかりません。

4

2 に答える 2

1

Chrome 開発者ツールでは、ビューモデルにブレーク ポイントを配置して、コードをステップ実行できます。また、durandal は、構成されたビューモデル オブジェクトを console.log に記録するので、それらがビューにバインドされた状態を確認できます。

これは、requirejs の仕組みを利用して、viewmodel オブジェクトへの参照をプログラムで取得する別の方法です。Chrome コンソールに次のように入力するだけです。

require(['durandal/pluggins/router','yourViewModel'], function (router, vm) {
    // here you can do whatever you want now to your router or vm.
    vm.someproperty('changed');
    router.activateRoute('page2');
});

コンソールでこれを行うことで、変更したいオブジェクトへのグローバル参照を作成することもできます:

require(['durandal/pluggins/router','yourViewModel'], function (router, vm) {
    window.TestVM = vm;
    window.router = router;
});

次に、これらのオブジェクトに次のようにアクセスできます。

TestVM.someproperty('changed');
router.activateRoute('page2');
于 2013-07-25T23:24:42.087 に答える
1

コンソールで次のように入力します。

viewmodel = require('viewmodels/myviewmodel')
于 2016-06-02T23:23:29.213 に答える