【问题标题】:Marionette App not starting and there's no error! What went wrong?Marionette App 没有启动,没有错误!什么地方出了错?
【发布时间】:2015-07-02 09:30:51
【问题描述】:

我正在尝试 David Sulc 对 Marionette.js (Backbone.js) 的温和介绍。几乎在第一个练习中,我遇到了一个奇怪的问题。当我在 chrome 或 firefox 中运行代码时,我在控制台中没有看到任何错误,但显然应用程序尚未启动(否则,marionette 呈现的文本应该是可见的)。同样,“console.log”命令在控制台窗口中没有显示任何响应。控制台是绝对空白的。没有错误,没有警告。请帮忙。

这是代码。请让我知道我到底做错了什么。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" >
    <title>Marionette Test Contacts</title>
    <link rel="stylesheet" href="assets/css/bootstrap.css" />
    <link rel="stylesheet" href="assets/css/application.css" />

</head>

<body>
    <div class="navbar navbar-inverse navbar-fixed-top">
        <div class="navbar-inner">
            <div class="container">
                <span class="brand">Contact manager</span>
            </div>
        </div>
    </div>

    <div id="main-region" class="container">
        <p>Content to hide when app starts.</p>
    </div>

    <script type="text/template" id="static-template">
        <p>This is generated by Marionette app.</p>
    </script>       

    <script src="http://code.jquery.com/jquery-1.10.2.js"></script>
    <script src="https://raw.github.com/douglascrockford/JSON-js/master/json2.js"></script>
    <script src="http://underscorejs.org/underscore.js"></script>
    <script src="http://backbonejs.org/backbone.js"></script>
    <script src="http://marionettejs.com/downloads/backbone.marionette.js"></script>

    <script type="text/javascript">
        var ContactManager=new Marionette.Application();
        ContactManager.on("initialize:after", function(){
            console.log("ContactManager has started!");
            var staticView=new ContactManager.StaticView();
            ContactManager.mainRegion.show(staticView);

        });
        ContactManager.start();
    </script>    
</body>
</html>

【问题讨论】:

    标签: javascript jquery html backbone.js marionette


    【解决方案1】:

    我相信您混淆了两个不同版本的 Marionette 的语法。
    如果您使用的是start(),请尝试:

    ContactManager.on("start", function(){}); 
    

    根据文档,事件是:

    • "before:start" / onBeforeStart: 在应用程序启动之前和初始化程序执行之前触发。
    • “start”/onStart:在应用程序启动和初始化程序执行后触发。

    https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.application.md

    【讨论】:

    • 谢谢@kim-gysen!!你关于我混合不同版本的木偶的建议让我搜索了文档。我发现问题出在 on() 函数中的“initialize:after”参数上。我应该使用“之前:开始”
    猜你喜欢
    • 1970-01-01
    • 2018-03-09
    • 2014-09-17
    • 1970-01-01
    • 2021-05-01
    • 2021-09-04
    • 2011-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多