未捕获的 ReferenceError:未定义主干

Posted

技术标签:

【中文标题】未捕获的 ReferenceError:未定义主干【英文标题】:Uncaught ReferenceError: Backbone is not defined 【发布时间】:2013-11-23 10:09:34 【问题描述】:

我正在使用 phonegap 构建一个网站。我注意到 bakcbone 和 jquery -jqm 在编译的应用程序中不起作用。实际上,我在 Eclipse 中收到以下错误:

Uncaught ReferenceError: Backbone is not defined at file:///android_asset/www/scripts/JSscript.js:7

我也收到错误:

未捕获的 ReferenceError:requestAnimationFrame 未在 file:///android_asset/www/scripts/JSscript.js:4484 中定义

而且我的触摸和点击事件在提取的应用程序中不起作用。知道如何解决这个问题吗??

JS 顺序:

<script type="text/javascript" src="./scripts/jquery.js"></script>
<script src="http://documentcloud.github.com/underscore/underscore-min.js"></script>
<script src="http://documentcloud.github.com/backbone/backbone-min.js"></script>
<script src='./scripts/JSscript.js'></script>

还有 JSscript:

var obj;
var profile;    

$(function() 

    // Backbone model Creation
    var ProfileModel = Backbone.Model.extend(

        defaults: 
                tstamp: 'adffdsa',
                map:"",
                tagsCloud:"",
                sentiment: "",
                usersCloud: "",
                timeline: "",
                highlights: "",
                signals: ""
        ,

        initialize: function() 

        

    );

    //Backbone model initialization
    profile = new ProfileModel(
                tstamp: 'adffdsa',
                map:"",
                tagsCloud:"",
                sentiment: "",
                usersCloud: "",
                timeline: "",
                highlights: "",
                signals: ""
    );

    var ProfileList = Backbone.Collection.extend(

                    model: ProfileModel,
                    url: 'data.php'
    );   

    var ProfileView = Backbone.View.extend(

        el: "#profiles",
        template: _.template($('#profileTemplate').html()),
        render: function(eventName) 

        _.each(this.model.models, function(profile)
        var profileTemplate = this.template(profile.toJSON());
        //push data to obj for map script
        obj = profile.toJSON();
        // Add data to DOM element
        $(this.el).html(profileTemplate);
        , this);

            return this;

        


    );

        var profiles = new ProfileList([profile]);    
        var profilesView = new ProfileView(model: profiles);

        // Fetching data from server every n seconds
        setInterval(function() 

                profiles.fetch(reset: true);

        , 4000); // Time in milliseconds

         profiles.bind('reset', function () 

                profilesView.render();

        );     

);

【问题讨论】:

你确定你的 Backbone 文件在 DOM 中高于JSscript.js吗? 是的,我尝试添加 cordoca.js 和 phonegap.js 但没有任何改变。 你能分享一下JSscript.js,让我们看看有什么问题吗? 在 .js 文件中,我尝试连接服务器。是否有可能调用 php 文件可能会导致这些问题?此外,我还有另一个 .js 文件,其中包含用于动画 DOM 元素的 jquery 和 jqm 脚本。它也不起作用。 我在本地定义了主干和 underscore.js,但没有任何改变。我遇到了同样的错误。 【参考方案1】:

编辑:我发现外部 url 必须在 config.xml 中用 .因此,animation.js 就像一个魅力。但是,我找不到为什么backbone.je 不起作用。似乎 data.php 引起了问题。

 var ProfileList = Backbone.Collection.extend(

                    model: ProfileModel,
                    url: 'data.php'
    ); 

我收到 Unknown chromium 错误:0。文件 data.php 的位置在 localhost 上,所以我添加了 config.xml IP 地址。但是我仍然收到 chromuim 错误。任何想法?

【讨论】:

以上是关于未捕获的 ReferenceError:未定义主干的主要内容,如果未能解决你的问题,请参考以下文章

未定义函数 - 未捕获的 ReferenceError

打字稿 - 未捕获的 ReferenceError:未定义导出

未捕获的 ReferenceError:未定义 showCategory

未捕获的 ReferenceError:“$ 未定义”[重复]

PhoneGap 错误 - “未捕获的 ReferenceError:cordova 未定义”

未捕获的 ReferenceError:$ 未定义 [重复]