2011-10-18 15 views
0

私のBackbone.jsプロジェクトで奇妙なバグがあります。作成、新規作成、編集、および削除アクションは適切に機能します。テキストを属性として持つオブジェクトの編集アクションをレンダリングすると、そのテキストの最初の単語だけがテキストボックスに表示されます。索引では、全文が表示されます。Backbone.jsテキストフィールドの最初の単語のみを表示

奇妙なことは、「編集」をクリックして確認しただけですが、バックボーンは元のテキストを使ってサーバーにPUTリクエストを送信します(最初の単語だけがブラウザに表示されます)。

など。

テキスト "fooのバー"

指標が示してポストを作成します。 "FOOバー"

編集示しています。 "foo" という

クリック保存 - >インデックスが "FOOバー"

示し

Firebugのは、サーバは200 OKとPUTに応答確認"text": "foo bar"

編集:コ私が使用したデは私のテンプレートではbackbone-rails gem

によって生成された定型文にかなり近いです:あなたがテンプレートにあなたの価値を囲む引用符を必要とする

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

私の編集ビューで

<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> 

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

引用符を使用しないと、マークアップが表示されます

<input ... value=foo bar> 

属性では1つのスペースが重要です。これはvalue="foo"であることの効果やそのequivalenあります

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

valueため<%= content %>の周りに、あなたのテンプレートに引用符を追加することにより、

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

を、あなたは正しいHTMLを生成します画面に値が正しく表示されます

関連する問題