如何使用jQuery的Backbone模型关于范围

时间:2017-03-21 17:57:31

标签: javascript jquery backbone.js model scope

我有一个jQuery项目,我希望在模型变量中维护表单数据。我当前的UI代码就像这样

$(document).ready(function(){
    $("#errMsg").hide();

    var Test = Backbone.Model.extend({
            defauts: {
                id: null,
                test: null,
                test1: null,
                test2: null,
                comments: null
            }
        });

     var uniquename = new Test({ id: null});


});

function test(){
  //Trying to access uniquename here or Test model
}

当我尝试从外部方法访问Test或uniquename时,它们无法访问。我所做的所有其他事情都是在简单的Javascript方法中。我知道这不是正确的做法,所以我寻求一些帮助。如何构建我的方法以及如何使我的变量可以通过不同的方法访问,以便我可以从一个方法读取Web服务响应并将其用作另一个方法的请求?

1 个答案:

答案 0 :(得分:1)

只需在同一范围内定义函数:

$(document).ready(function(){

  $("#errMsg").hide();

  var Test = Backbone.Model.extend({
        defauts: {
            id: null,
            test: null,
            test1: null,
            test2: null,
            comments: null
        }
    });

    var uniquename = new Test({ id: null});
    function test(){
       //access uniquename here or Test model
    }
});

如果你不能这样做,例如,如果你的代码被分成不同的文件或其他东西,那么最简单的解决方案就是使用名称空间 - 比如MyApp.Models.Test = Backbone.Model.extend({})。在这种情况下,MyApp将全局可用(在首先加载的文件中在$(document).ready()之外声明)

或使用模块模式,RequireJS是Backbone.js应用程序中非常常见的模块加载器。