2012-09-09 80 views
0

CoffeeScript的路由器我有骨幹網應用程序下面是代碼:骨幹與ID不工作

這是Main.coffee:

require ["App/app","backbone"] ,(App,Backbone)-> 
app = new App() 
Backbone.history.start() 

這是app.coffee:

class AppRouter extends Backbone.Router 
    routes : 
     "" : 'Base' 
     "Browse/:id" : "Details" 

    initialize : ->   
     @render() 

    Browse : (id) -> 
     console.log "Hello" 
     stud = new Student({UserKey:id}) 
     stud.fetch({ 
      success :-> 
       $('#content').html new View({model:stud}).el 
     }) 
     null 

這是我的View.coffee

define ['jquery' 
    ,'underscore' 
    ,'backbone' 
    ,'text!/Templates/Student/View.htm'] , ($ , _ , Backbone , ViewTemplate) -> 

class StdView extends Backbone.View 

    #_.templateSettings = { interpolate: /\{\{(.+?)\}\}/g }; 

    #template : _.template(View) 

    initialize : (options) ->   
     @render() 

    render :-> 
     console.log @model.toJSON() 
     #@setElement @template @model.toJSON() 
     @ 

,這是我的視圖模板(有關說明學生的詳細信息)

<input type="text" name="firstname" value="{{FirstName}}" placeholder="First Name" /> 
    <input type="text" name="lastname" value="{{LastName}}" placeholder="Last Name" /> 

的項目呈現了一張桌子,從那裏我在編輯按鈕移到點擊瞭解詳細內容的鏈接。以下是id呈現的模板部分。

<td> 
    <a class="btn btn-small btn-inverse" href="#browse/{{UserKey}}"><i class="icon-edit icon-white"></i></a> 
</td> 

現在我已經開始了Backbone.history.start()。但它沒有辦法去瀏覽它應該去的方法,如果我點擊鏈接例如:/瀏覽/ 1。它沒有發生。這是在瀏覽器中呈現時,我點擊鏈接是這樣

的http://本地主機:40921 /#瀏覽/ 5

那麼,是它畢竟會錯?????? ?如果你想#browse/5做任何事情

routes : 
    "" : 'Base' 
    "browse/:id" : "Details" 

回答

1

路線是大小寫敏感的,你應該有這個。或者像現在一樣保持路線,並將鏈接更改爲使用#Browse/5

演示:http://jsfiddle.net/ambiguous/NLzyS/

如果你想不區分大小寫的路線,你可以添加一個正則表達式路線使用route手動:

initialize: -> 
    @route(/browse\/(\d+)/i, 'Details') 

演示:http://jsfiddle.net/ambiguous/2S6wr/

+0

是的!謝謝你是對的。路由器確實是大小寫敏感:)。我以前沒有聽從它的意見。現在我知道了它爲什麼現在工作。 – Joy