我是Backbone的新手,所以學習練習我試圖用Rails後端設置一個簡單的應用程序。我正在努力分離Rails API路線和Backbone路線。 比如我的骨幹路由器目前看起來是這樣的:無法分離主幹和Rails路線
class App.Routers.LawAppRouter extends Backbone.Router
routes:
'': 'index'
'flows/:id': 'showFlow'
index: ->
flows = new App.Collections.Flows()
flows.fetch().done =>
view = new App.Views.Flows(collection: flows)
$('#container').html(view.render().el)
showFlow: (id) ->
alert('in showFlow)
我想要做的是讓Rails的API活「API/V1 /資源」命名空間下,而骨幹網將處理簡單的「/資源」路線然後在處理函數中調用API。
起初我創建了一個流動模型
class App.Models.Flow extends Backbone.Model
集合
class App.Collections.Flows extends Backbone.Collection
url: 'api/v1/flows'
model: App.Models.Flow
和索引視圖
<ul>
<% for flow in @flows.models: %>
<li>
<a href="<%= flow.url() %>"><%= flow.get('title') %></a>
</li>
<% end %>
</ul>
寫這樣一來,flow.url()返回
api/v1/flows/:id
直接命中API。相反,我想flow.url()來生成客戶端路線
flows/:id
所以我改變了模型是
class App.Models.Flow extends Backbone.Model
clientSideUrl: ->
"flows/#{@id}"
和索引視圖
<a href="<%= flow.clientSideUrl() %>"><%= flow.get('title') %></a>
哪現在生成
flows/:id
其中,據我瞭解,應該與此主幹航線
'flows/:id': 'showFlow'
然而,而是不斷打在API /流/:身份證,因爲這條路線並不在Rails的存在會拋出一個錯誤。
- 我在這裏錯過了什麼?
- 爲什麼骨幹路由不被觸發?
- 這是在Backbone中分離客戶端和服務器端路由的正確方法嗎?
謝謝!