我對Backbone相當新,我一直在做教程,以更好地理解骨幹,但我永遠無法弄清楚如何可以在模型中定義的URL工作。Backbone.js url函數是如何工作的?
網址: '/的TodoItem'
我從PHP環境來了,我習慣了靜態網頁。 '/ todoItem'究竟是什麼?
謝謝。
我對Backbone相當新,我一直在做教程,以更好地理解骨幹,但我永遠無法弄清楚如何可以在模型中定義的URL工作。Backbone.js url函數是如何工作的?
網址: '/的TodoItem'
我從PHP環境來了,我習慣了靜態網頁。 '/ todoItem'究竟是什麼?
謝謝。
Backbone採用REST風格的API,其中每個模型都是具有自己的URL路徑的REST資源。所以,你可能能夠做這樣的事情:
POST /car
GET /car/42
PUT /car/42
和JSON請求的身體像{"model": "Corolla"}
DELETE /car/42
所以通常一個模型想要的網址如果它是新的(尚未保存的)模型,則爲/car
,否則爲/car/42
。因此,default implementation from backbone是:
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);
},
所以通常情況下,所有你需要做的是改變urlRoot
財產,你是好去,如果你的API遵循REST約定。
var Car = Backbone.Model.extend({urlRoot: '/car'});
彼得,我還是不太明白。該網址發生了什麼?如何將發佈到URL的信息插入到數據庫中? – 2013-03-10 18:09:39
@IlyaKarnaukhov:你需要一些服務器端代碼(可能PHP,可能是別的東西,Backbone不關心)來處理[GET/POST/PUT/...請求](http://backbonejs.org/docs /backbone.html#section-174)並與數據庫交談。您可能需要使用['emulateHTTP'](http://backbonejs.org/#Sync-emulateHTTP)或['emulateJSON'](http://backbonejs.org/#Sync-emulateJSON),具體取決於服務器的工作方式。 – 2013-03-10 18:27:24
@IlyaKarnaukhov堆棧溢出是針對特定問題。 Backbone是非常有據可查的文件,並有許多高質量的教程和演示項目。從那裏開始。基礎架構是一個數據庫,服務器上的Web應用程序,具有一些業務邏輯來處理數據庫數據,提供給瀏覽器的RESTful API以及瀏覽器中基於骨幹網的JavaScript單頁應用程序設計。 – 2013-03-10 18:30:08
我保證我不會被嚇倒。我肯定會推薦閱讀Backbone的源代碼來幫助你學習它。這不是太長,我發現它看起來很有幫助,看看一切如何結合在一起。 – loganfsmyth 2013-03-10 18:01:16
同意。我想我會給它一個閱讀;)謝謝 – 2013-03-10 18:02:25