我是骨干新手,并尝试使用一个使用骨干 js 后端并调用返回 json 对象的 rest API(使用 rails 创建)的应用程序的简单示例。如果我在浏览器上键入 rest api URL,它会成功返回 JSON 数据。但是,当我启动我的应用程序时,我可以看到 API 返回一个空响应(但它返回 200 OK 状态)。如果我用 twitter 搜索 api 替换此 URL,那么这也将成功返回数据。所以问题似乎只出在rails REST API上。这是我的主干代码:
var Product = Backbone.Model.extend();
var ProductList = Backbone.Collection.extend({
model: Product,
url: 'http://hvo-lnx.cisco.com:7777/product_families.json'
});
var ProductView = Backbone.View.extend({
template: _.template($('#prodlist_template').html()),
render: function(eventName) {
_.each(this.model.models, function(product){
var lProductName = product.attributes['name'];
var lTemplate = this.template(product.toJSON());
$(this.el).append(lTemplate);
}, this);
return this;
}
});
var lProducts = new ProductList;
var AppView = Backbone.View.extend({
el: "body",
render: function(){
var lProductsView = new ProductView({model:lProducts});
var lHtml = lProductsView.render().el;
$('#products').html(lHtml);
},
initialize: function(){
var lOptions = {};
lOptions.success = this.render;
lProducts.fetch(lOptions);
}
});
var App = new AppView;
HTML:
<html>
<head>
<link rel="stylesheet" href="css/bootstrap.css" />
</head>
<body>
<ol id="products">
<script type="text/template" id="prodlist_template">
<li><%= name %></li>
</script>
</ol>
<script src="js/jquery-1.9.1.min.js"></script>
<script src="js/underscore-min.js"></script>
<script src="js/backbone-min.js"></script>
<script src="js/prodtest.js"></script>
</body>
</html>
如果我用http://search.twitter.com/search.json?q=NYC&callback=替换 URL ?并更改属性字段,然后就可以了。有没有其他人遇到过这个问题?我真的很感激任何指示。