Backbone.js不会将变量保存在集合中

时间:2014-10-18 12:56:13

标签: javascript jquery backbone.js

我有一些列表元素,其中包含一些电影片段。当用户单击包含电影标题的列表元素时,我想将该电影标题保存到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()

我一直在查看这段代码,感觉我错过了一些明显的东西。

1 个答案:

答案 0 :(得分:0)

有时你只需退后一步,走一小段路去呼吸新鲜空气。

$('movie_title')

这不再是变量

$movie_title

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