【问题标题】:Why hot towel not loading my Javascript files为什么热毛巾不加载我的 Javascript 文件
【发布时间】:2013-06-07 15:48:05
【问题描述】:

我安装了热毛巾。修改Shell.html如下

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

ma​​ster.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 中定义的服务。 可能是什么问题?

【问题讨论】:

    标签: single-page-application hottowel


    【解决方案1】:

    您的问题是您在内容部分的 shell.html 文件中所做的更改。进行以下更改,您的 404 应该会消失:

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

    我不熟悉您正在使用的 config.js 模式,但我认为您想回到使用路由器动态设置 model 参数在shell.html中并在热毛巾模板自带的shell.jsboot函数中配置激活路由。

    【讨论】:

    • 我已经改变了我的问题。现在我不使用 config.js 而是使用 router.mapNav。但不知何故,它没有加载 search.js 文件。请在我的问题中查看更多详细信息。很抱歉。
    • 我很抱歉,但老实说,我什至在你回答之前就解决了这个问题。非常感谢您的努力,为您 +1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多