我有一些列表元素,其中包含一些电影片段。当用户单击包含电影标题的列表元素时,我想将该电影标题保存到Backbone集合中,以便将电影标题添加到用户记录中。
这是我的indexView
class Movieseat.Views.MovieseatsIndex extends Backbone.View
template: JST['movieseats/index']
initialize: ->
@collection.on('reset', @render, this)
render: ->
$(@el).html(@template(movies: @collection))
this
events: ->
"click li": "showtext"
showtext: (e) ->
movie_title = $(e.target).text()
@collection.create title: $('movie_title').text()
我的收藏
class Movieseat.Collections.Movieseats extends Backbone.Collection
url: '/api/movies'
defaults:
title: ""
我的模板
<% for movie in @movies.models: %>
<div class="movie-frame"><%= movie.get('title') %></div>
<% end %>
我使用骨干模型工作,但从那时起我一直在关注RailsCast骨干视频,并且他正在使用集合,所以我正在切换。
在我的主页上(我渲染模板的地方)我有一些.movie-frame
元素,当我使用模型时,这些元素都填充了电影标题。
但是当我现在点击一个元素时,我确实得到了一个新的.movie-frame
元素,但它没有任何内容。所以我猜这个问题就在这个部分
showtext: (e) ->
movie_title = $(e.target).text()
@collection.create title: $('movie_title').text()
我一直在查看这段代码,感觉我错过了一些明显的东西。
答案 0 :(得分:0)
有时你只需退后一步,走一小段路去呼吸新鲜空气。
$('movie_title')
这不再是变量
$movie_title
这是。现在我已经改变了这个集合将变量保存到Collection中。