2013-03-13 36 views
0

我試圖在Backbone.js視圖頁面中顯示圖像。回形針photo.url不能在Backbone.js中工作

我show_view.js.coffee是

Myapp.Views.Checklists ||= {} 

class Myapp.Views.Checklists.ShowView extends Backbone.View 
template: JST["backbone/templates/checklists/show"] 

render: -> 
@$el.html(@template(@model.toJSON())) 
return this 

我show.jst.ejs文件

<p> 
<b>Title:</b> 
<%= title %> 
</p> 

<p> 
<img src="<%= how_to_show_photo_url %>" alt="No image"> 

</p> 

<a href="#/index">Back</a> 

我使用回形針寶石。我嘗試在圖片標籤中使用<%= photo.url%>,但它不起作用。如何在圖片標籤中顯示照片?

+1

叫什麼名字你包含Url的'Model'屬性/屬性?使用它。 (是'photo.url'?) – WiredPrairie 2013-03-13 19:22:32

+0

@ model.toJSON()給出{「comments」:「Backbone attachment」,「created_at」:「2013-03-12T23:41:40Z」,「id」:16, 「photo_content_type」:「image/jpeg」,「photo_file_name」:「IMG_0011.JPG」,「photo_file_size」:2714495,「photo_updated_at」:「2013-03-12T23:41:40Z」,「title」:「Test Attaachment using骨幹」, 「的updated_at」: 「2013-03-12T23:41:40Z」}。由於我使用回形針,我試過<%= photo.url%> – Dhepthi 2013-03-13 20:29:49

+0

'<%= photo_file_name%>'看起來像文件名。我不明白你從哪裏得到'photo.url'?它不是從服務器返回的對象的屬性之一。您的模板只能訪問通過編譯的模板函數顯式發送的屬性和對象。 – WiredPrairie 2013-03-13 21:50:25

回答

2

在將rails發送到backbone.js之前,我改變了它的響應。我使用文件的原始路徑更新了photo_file_name屬性。我更新了代碼

@checklists = Checklist.find(:all) 
@checklists.map{|k,v| k.photo_file_name = k.photo.url } 

現在我的JSON響應是

{"comments":"Backbone attachment","created_at":"2013-03-12T23:41:40Z","id":16,"photo_content_type":"image/jpeg", 
"photo_file_name":"/system/checklists/photos/000/000/016/original/IMG_0011.JPG?1363131700", 
"photo_file_size":2714495,"photo_updated_at":"2013-03-12T23:41:40Z","title":"Test Attaachment using backbone","updated_at":"2013-03-12T23:41:40Z"} 

我用photo_file_name屬性的圖片src標籤

任何更好的解決方案是最歡迎的

+0

我認爲這是做到這一點的最佳方式。 – 2015-12-17 11:53:28