0

backbone.js、backbone-forms、Rails を評価していますが、いくつか問題があります...

新しいモデルとフォームを作成するビューがあり、このフォームを他の html 要素と共に表示したいので、テンプレートを使用しています。

expedients_new.js.coffee
------------------------

class Globalbackbone.Views.ExpedientsNew extends Backbone.View

template: JST['expedients/new']

render: ->

@form = new Backbone.Form({
    model: @model
}).render();

console.log(@model.procedencia) 
console.log(@form) 
$(@el).html(@template(expedient: @model, form: @form ))
this

このビューはテンプレートを使用しており、このテンプレートでは、そこにフォームをレンダリングしたいのですが、その方法がわかりません...

new.jst.eco
-----------

<h1>BackBones with GlobalWeb</h1>

<h2>Adding New Expedient</h2>

<%=@expedient.date%>
<hr>
<%=@form.el%>
<hr>
<%=@form%>

前もって感謝します、

よろしく

編集

フォームが期待される現在のブラウザー出力は次のとおりです。 [object HTMLFormElement]

4

1 に答える 1

0

使用方法@formは、バックボーン ビューになることを示しています。

var form = new Backbone.Form({
    model: user
}).render();

つまり@form.el、DOM に挿入する必要がある DOM 要素になります。

$('body').append(form.el);

sourceを見ると、それBackbone.FormBackbone.Viewサブクラスであることがわかります。

var Form = (function() {
  return Backbone.View.extend({
    //...

@formコードは、HTML を含む文字列であるかのように処理しようとしています。

<%=@form%>

そのため、DOM 要素の標準的な文字列化されたバージョンになります: [object HTMLFormElement].

次のような見方ができれば、運気が上がると思います。

@$el.append(@template(expedient: @model))
@$el.append(@form.el)

そしてあなたのテンプレートで:

<h1>BackBones with GlobalWeb</h1>

<h2>Adding New Expedient</h2>

<%=@expedient.date%>
<hr>

の後にフォームが表示されます<hr>

于 2012-11-25T06:17:47.203 に答える