Backbone.js url函数如何工作?

Ily*_*hov 0 javascript jquery backbone.js

我对Backbone相当新,为了更好地理解Backbone,我一直在做教程,但我从来没有弄清楚如何在模型中定义url的工作原理.

url:'/ todoItem'

我来自PHP环境,习惯于静态页面.'/ todoItem'究竟是什么?

谢谢.

Pet*_*ons 6

Backbone采用REST风格的API,其中每个模型都是具有自己的URL路径的REST资源.所以你可以做以下事情:

  • 用.创建汽车资源 POST /car
  • 阅读特定的汽车资源 GET /car/42
  • 使用PUT /car/42和JSON请求体更新汽车特定资源{"model": "Corolla"}
  • 删除特定的汽车 DELETE /car/42

因此,通常对于模型来说,/car如果URL是新的(尚未保存的)模型,/car/42则需要URL .因此,骨干网默认实现是:

url: function() {
  var base = _.result(this, 'urlRoot') || _.result(this.collection, 'url') || urlError();
  if (this.isNew()) return base;
  return base + (base.charAt(base.length - 1) === '/' ? '' : '/') + encodeURIComponent(this.id);
},
Run Code Online (Sandbox Code Playgroud)

通常情况下,您需要做的就是更改urlRoot属性,如果您的API遵循REST约定,那么您很高兴.

var Car = Backbone.Model.extend({urlRoot: '/car'});
Run Code Online (Sandbox Code Playgroud)