2

NopCommerce プラグインを作成しようとしています。名前付きディレクトリのプラグインのルート ディレクトリ内にアプリ関連のファイルを配置しましたapp。私のshell.js viewmodelでは、次のようにルートを定義します。

define(['durandal/system', 'durandal/plugins/router', 'service/logger','config'],
    function(system, router, logger,config) {

        var shell = {
            activate: activate,
            router: router
        };

        function activate() {
            logger.log('MyProducts Started', null, system.getModuleId(shell), true);
            router.map([
                { route: '', moduleId: 'viewmodels/myProducts', title: 'My Products', nav: true },
                { route: 'searchProducts', moduleId: 'viewmodels/searchProduct', title: 'Search Products', nav: true },
                { route: 'addProducts', moduleId: 'viewmodels/addProduct', title: 'Add Product', nav: true }
            ]).buildNavigationModel();
            return router.activate();
        }

        return shell;
    }
);

規則により、モジュールで定義された最初のルートに移動する必要がありますviewmodels/myProductsが、次のエラーが発生します:

[viewmodels/shell] MyProducts Started system.js:75
[main] No router found Object
Navigation Complete undefined Object
Uncaught TypeError: Cannot read property 'router' of undefined 

井戸で頭を叩いています。デフォルト ルートにはなりません (route:'' を使用)。

4

3 に答える 3

3

ルートナビゲーション中に同じ問題が発生しました。空のjsモジュールファイルであることが判明しました-ファイルを作成しましたが、まだ何も入れずにルートに追加しました。

したがって、このメッセージは、ルート コントローラーのソースとして参照した js ファイルの 1 つをルーターが取得したが、そこからページ コントローラー オブジェクト インスタンスを取得できなかったことを意味している可能性があります。

于 2015-04-25T18:29:39.887 に答える