Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 主干中此代码的错误在哪里?_Javascript_Jquery_Html_Backbone.js - Fatal编程技术网

Javascript 主干中此代码的错误在哪里?

Javascript 主干中此代码的错误在哪里?,javascript,jquery,html,backbone.js,Javascript,Jquery,Html,Backbone.js,根据,它应该在浏览器中显示集合,但它不显示任何内容,也不显示错误消息 (function ($) { var MessageModel = Backbone.Model.extend({ defaults: { code: 0, message: "Test Message example_2" } }); var MessageCollection = Backbone.Collectio

根据,它应该在浏览器中显示集合,但它不显示任何内容,也不显示错误消息

(function ($) {
    var MessageModel = Backbone.Model.extend({
        defaults: {
            code: 0,
            message: "Test Message example_2"
        }
    });

    var MessageCollection = Backbone.Collection.extend({
        model: MessageModel,
    })

    // Create two views, one for message list and another for message item.
    var MessageListView = Backbone.View.extend({
        tagName: "ul",
        render: function(eventName) {
            _.each(this.model.models, function(msg){
                $(this.el).append(new MessageListItemView({model:msg}))
            }, this);

            return this;
        }
    });

    var MessageListItemView = Backbone.View.extend({
        tagName: "li",
        template: $("#tpl-message-item").html(),

        render: function(eventName) {
            var tmpl = _.template(this.template);  //tmpl is a function that takes a JSON object and returns html
            this.$el.html(tmpl(this.model.toJSON()));  //this.$el is what we defined in tagName. Use $el to get access to jQuery html() function 

            return this;
        }
    })

    var MessageRouter = Backbone.Router.extend({
        routes: {
            "": "displayMessages"
        },

        displayMessages: function(){
//            var msgx = new MessageModel({ code: "001X", message: "Registration Successfully X" });
//            console.log(msgx.toJSON());  // Display mesasge to console

            var msg1 = new MessageModel({ code: "001", message: "Registration Successfully" });
            var msg2 = new MessageModel({ code: "002", message: "Registration Failed" });
            var msg3 = new MessageModel({ code: "003", message: "Login Successfully" });
            var msg4 = new MessageModel({ code: "004", message: "Login Failed" });

            var messageCollection = new MessageCollection([ msg1, msg2, msg3, msg4 ]);

            // Use underscore.js iterator "each" function to retrieve data of "MessageCollection"
//            _.each(messageCollection.models, function (msg) {
//                console.log( "code => " + msg.get("code") + ", message => " + msg.get("message") );
//                alert("code => " + msg.get("code") + ", message => " + msg.get("message"));
//            });

            var messageListView = new MessageListView({model: messageCollection});

            $('#messageList').html(messageListView.render().el);
        }
    });

    var messageRouter = new MessageRouter();
    Backbone.history.start();


})(jQuery);
以下是模板:

<html>
    <head>
        <title>php backbone.js example 2</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
        <script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script>
        <script type='text/javascript' src='../../../../wp-includes/js/underscore.min.js'></script>
        <script type='text/javascript' src='../../../../wp-includes/js/backbone.min.js'></script>
        <script type='text/javascript' src='js/example_2.js'></script>

        <!-- add a div for contain message list and add a template for render each message item. -->
        <div id="messageList"></div>

        <!-- Templates -->
        <script type="text/template" id="tpl-message-item">
            <a href="#" id="<%= code %>"><%= message %></a>
        </script>
    </body>
</html>

php backbone.js示例2

在页面准备就绪之前,您正在加载脚本文件

由于文档中尚不存在
messageList
div,路由器中的以下行失败

$('#messageList').html(messageListView.render().el);
只需将脚本放在底部

<body>
    <!-- add a div for contain message list and add a template for render each message item. -->
    <div id="messageList"></div>

    <!-- Templates -->
    <script type="text/template" id="tpl-message-item">
        <a href="#" id="<%= code %>"><%= message %></a>
    </script>

    <script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script>
    <script type='text/javascript' src='../../../../wp-includes/js/underscore.min.js'></script>
    <script type='text/javascript' src='../../../../wp-includes/js/backbone.min.js'></script>
    <script type='text/javascript' src='js/example_2.js'></script>
</body>


mm。。wanne可能会打开错误报告吗?@鸣人,我如何打开错误报告?当我添加一个有错误的行时,它会显示出来,而不是在本例中。。。