Javascript 使用Backbonejs从对象获取值
我想从这个APIJavascript 使用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/
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您只需要根据需要解析。使用egreturn{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
}
},