基本的に、Backbone&coffeescriptでは、TwitterAPIからツイートを取得しています。JSONのフェッチは機能しますが、テンプレートをhtmlにロードすることはできません。テンプレートのプルインはrender関数内では機能しますが、@ Tweets.fetch()関数内では機能しません。
失敗しているように見えるコード行は..
$(@.el).html(_.template($('#leTweets').html(), {tweets: tweets.models, _:_} ))
私の見解はこのように見えます...
class HomeView extends Backbone.View
constructor: ->
super
initialize: ->
@Tweets= new TweetsCollection
render: ->
@loadResults()
loadResults: ->
@Tweets.fetch({
success: (tweets) ->
$(@.el).html(_.template($('#leTweets').html(), {tweets: tweets.models, _:_} ))
error: ->
alert('Error!')
})
私のHTMLは次のようになります。
<script type="text/template" id="leTweets">
<div data-role="header" data-position="fixed">
<h1>TWEETS</h1>
</div>
<div data-role="content">
<h3>Tweets</h3>
<ul class="tweets">
<% _.each(tweets, function (tweet) { %>
<li><%= tweet.get('text') %></li>
<% }); %>
</ul>
</div>
</script>
そして私のコレクションは次のようになります:
class PropertyCollection extends Backbone.Collection
constructor: ->
super
url: ->
'http://search.twitter.com/search.json?q=' + @query + '&page=' + @page + '&callback=?'
parse: (resp, xhr) ->
resp.results
page: 1,
query: "Backbone"
どんな助けでも大歓迎です、ありがとう。