このコードを Backbone.js に書き換えたいのですが、どうすればよいですか?
app/assets/javascripts/views/plots/plots_index.js.coffee
class App.Views.PlotsIndex extends Backbone.View
template: JST['plots/index']
events:
'submit #new_plot': 'createPlot'
initialize: ->
@collection.on('reset', @render, this)
@collection.on('add', @appendPlot, this)
render: =>
$(@el).html(@template())
@collection.each(@appendPlot)
this
appendPlot: (plot) =>
view = new App.Views.Plot(model: plot)
@$('#all_plots').append(view.render().el)
createPlot: (event) ->
event.preventDefault()
attributes = name: $('#new_plot_name').val()
@collection.create attributes,
wait: true
success: -> $('#new_plot')[0].reset()
error: @handleError
アプリ/アセット/テンプレート/プロット/index.jst.eco
<textarea class="input" id="new_plot_name" name="name" rows="5" onClick="if(this.value == 'Type something') { this.value = ''; }">Type something</textarea>
<input class="generate_button col2" name="commit" type="submit" value="Submit" />
onClick の関数をビューコードに入れたいのですが、よくわかりません。私はこのようなことを試しましたが、運がありません:
events:
'click #new_plot_name' : 'clear'
clear: =>
if @$('#new_plot_name').value == 'Type something'
@$('#new_plot_name').value = ''
それを行う方法は何になるので、次のようなことができます:
<textarea class="input" id="new_plot_name" name="name" rows="5" onClick="<%= @clear(this) %>">Type something</textarea>