2014-10-18 97 views
0

我有几个列表元素,其中包含一些电影标题。当用户点击包含电影标题的列表元素时,我想将该电影标题保存到Backbone集合中,以便将电影标题添加到用户记录中。Backbone.js不保存集合中的变量

这是我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

有时你只需要退后一步,散步,并获得一些新鲜空气。

$('movie_title') 

这不是一个变量了

$movie_title 

这是。现在我改变了这个集合将变量保存到集合中。