0

ホットタオルを設置しました。Shell.htmlを以下のように修正

<section id="content" >
     <!--ko compose: {view: 'master'} --><!--/ko-->
</section>

master.htmlファイルで、search.htmlという別の html ファイルを呼び出します

<section >
        <div id="SearchDetails">
            <section>
                 <!--ko compose: {view: 'search'} --><!--/ko-->
            </section>

        </div>

search.html を正常にロードします。しかし、以下のようにsearch.jsを書いたrestserviceを呼び出していません

define(['services/dataservice'], function (dataservice) {
var productVersionData = ko.observableArray();
var initialized = false;
var vm = {
    activate: activate,
    productVersionData: productVersionData

};
return vm;

function activate() {
    alert(" i am hit");
    if (initialized) { return; }
    initialized = true;
    return refresh();
}

function refresh() {
    return dataservice.getProductVersionPartials(productVersionData);
}

});

私のshell.jsでは、以下のようにすべてのビューモデルを呼び出しています

define(['durandal/system', 'durandal/plugins/router', 'services/logger'],
function (system, router, logger) {
    var shell = {
        activate: activate,
        router: router
    };

    return shell;

    //#region Internal Methods
    function activate() {
        return boot();
    }

    function boot() {
        router.mapNav('master');
        router.mapNav('search');
        log('Hot Towel SPA Loaded!', null, true);
        return router.activate('master');
    }

    function log(msg, data, showToast) {
        logger.log(msg, data, system.getModuleId(shell), showToast);
    }

});

デバッガーステートメント、console.logステートメントをsearch.js内に配置しましたが、何らかの方法でsearch.jsをロードしていません。そのため、dataservice で定義されたサービスを呼び出していません。何が問題になる可能性がありますか?

4

1 に答える 1

1

問題は、コンテンツ セクション内のshell.htmlファイルで行った変更です。次の変更を行うと、404 が消えるはずです。

<section id="content" class="main container-fluid">
    <!--ko compose: {model: 'viewmodels/master', activate: true} -->
    <!--/ko-->
</section>

私はあなたが使用しているconfig.jsパターンに精通していませんが、シェル.htmlmodelでパラメーターを動的に設定するためにルーターを使用して、シェルでアクティブ化されたルートを構成したいと思うでしょう。ホット タオル テンプレートに付属するjs関数。 boot

于 2013-06-06T18:27:57.857 に答える