2011-10-18 103 views
0

我看到我的Backbone.js項目有一個奇怪的錯誤。創建,新建,編輯和刪除操作正常工作。在爲文本作爲屬性呈現對象的編輯操作時,只有該文本的第一個單詞顯示在文本框中。在索引上顯示全文。Backbone.js編輯文本字段只顯示第一個字

奇怪的是,如果我點擊「編輯」,然後只是確認,骨幹向服務器發送一個PUT請求與原始文本(而不是隻有第一個字,這是我在瀏覽器中看到的)。

E.g.

與文本 「富巴」

指數顯示創建帖子: 「富巴」

編輯表示: 「富」

點擊保存 - >指數顯示, 「富巴」

螢火蟲確認服務器迴應200 OK放,"text": "foo bar"

編輯:共去我以前是非常接近由backbone-rails gem

生成模板中的樣板:

<form id="edit-post" name="post"> 
    <div class="field"> 
    <label for="content"> content:</label> 
    <input type="text" name="content" id="content" value=<%= content %> > 
    </div> 

    <div class="actions"> 
    <input type="submit" value="Update Posts" /> 
    </div> 

</form> 

在我的編輯視圖

events : 
    "submit #edit-posts" : "update" 

update : (e) -> 
    e.preventDefault() 
    e.stopPropagation() 

    @model.save(null, 
    success : (posts) => 
     @model = posts 
     window.location.hash = "/#{@model.id}" 
) 

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

    this.$("form").backboneLink(@model) 

    return this 
+0

一些代碼或說明問題的jsFiddle將是非常棒的。 –

+0

剛剛完成,我會盡快更新模板並查看代碼。感謝您的建議 –

回答

4

您在模板需要圍繞你的價值的報價

<input type="text" name="content" id="content" value="<%= content %>" > 

沒有引號,你最終會看到標記像這樣:

<input ... value=foo bar> 

單個空間在屬性中很重要。這具有value="foo"效果還是這個equivalen:

<input ... value="foo" bar> 

通過模板中添加引號,則<%= content %>各地爲value,你會產生正確的HTML:

<input ... value="foo bar"> 

這將顯示正確的值,在屏幕上

相關問題