Javascript 使用Backbonejs从对象获取值

Javascript 使用Backbonejs从对象获取值,javascript,jquery,backbone.js,underscore.js,Javascript,Jquery,Backbone.js,Underscore.js,我想从这个APIhttp://demo82.com/lois/api/get_page/?id=6使用主干js。我试过了,但我不知道如何从主干中的对象获取值 这是我的主干代码 Page = Backbone.Model.extend({ initialize: function() { this.on('all', function() { console.log(this.get('page')); }); }, url: "http://demo82.com/

我想从这个API
http://demo82.com/lois/api/get_page/?id=6
使用主干js。我试过了,但我不知道如何从主干中的对象获取值

这是我的主干代码

Page = Backbone.Model.extend({
initialize: function() {
        this.on('all', function() { console.log(this.get('page')); });
    },
    url: "http://demo82.com/lois/api/get_page/?id=6",
    defaults: {
        "id":null,
        "title":"",
        "content":""
    }
});


 var page = new Page();
 console.log(page.fetch({})); 
我是新来的,尝试学习backbonejs。请解释一下更好的方法是什么?请使用
jsfiddle.net
给我一个ans。
谢谢

id总是6吗?在你的代码中,你的模型总是排在第六位。如果您想要一个带有get参数的自定义url,请作为函数重写
url

 url: function() {
      id = this.get("id");
      return "loispage/api/get_page/?id=" + id
 }
更好的是,如果您可以控制服务器端,并且可以使用页面实体做一些更加RESTful的事情——只需设置urlRoot

 urlRoot: "loispage/api/page/"
fetch将自动从中执行HTTP get

 "http://.../loispage/api/page/<id>
”http://.../loispage/api/page/

它看起来像是一个上下文问题(
未引用回调上的
中的模型)。您可以通过指定上下文来解决此问题:

this.on('all', 
    function() { console.log(this.get('pagel')); },
    this
);
编辑

还有一个跨域问题。您需要通过覆盖同步和解析来使用JSONP请求来解决此问题。()


我们更喜欢将代码内联,而不是像JSFIDLE这样的东西。看一看:我只想得到所需的值title、content等。结果是demo82.com/lois/wp-content/uploads/2012/10/img.jpg,但我只想得到所需的值title、content等…@Furqan您只需要根据需要解析。使用eg
return{title:response.title,…}
我在同一个域上工作。这不是跨域的问题。你认为$.ajax()是更好的方法吗?请看@Furqan no,如果你在同一个域上,那么使用
.fetch()会更容易/更好
。您可以在浏览器控制台上看到和对象。代码在这里。问题是如何从对象中呈现所需的数据。
var Page= Backbone.Model.extend({

// override backbone synch to force a jsonp call
sync: function(method, model, options) {
    // Default JSON-request options.
    var params = _.extend({
      type:         'GET',
      dataType:     'jsonp',
      url:            model.url(),
      processData:  false
    }, options);

    // Make the request.
    return $.ajax(params);
},

parse: function(response) {
    // parse can be invoked for fetch and save, in case of save it can be undefined so check before using 
    if (response) {
        console.log(JSON.stringify(response));
        // here you write code to parse the model data returned and return it as a js object 
        // of attributeName: attributeValue
        return { status: response.status };    // just an example
    }
},