인터넷에서 수많은 자습서뿐만 아니라 StackExchange에서도 수많은 게시물을 읽었지 만 기본적인 이해는 Backbone
사용 및 구현에 불과합니다.무수한 백본 튜토리얼 읽기 여전히 무언가 누락 됨
내 작품 서버의 PHP
파일에서 생성 된 사전 필터링 된 JSON을 사용하여 사용자 정의 Twitter 타임 라인을 작성하려고합니다.
나는 가깝다고 느낀다. 그러나 나는 일을하는 것처럼 보이지 않는다. 때때로 콘솔에서 20 개의 트윗을 볼 수 있지만 템플리트를 통해 렌더링 할 수있는 트윗은 1 개입니다. 여기
(function($){
if(!this.hasOwnProperty("app")){ this.app = {}; }
app.global = this;
app.api = {};
app.api.Tweet = Backbone.Model.extend({
defaults: {}
});
app.api.Tweets = Backbone.Collection.extend({
model: usarugby.api.Tweet,
url: "https://custom.path.to/api/tweets/index.php",
parse: function(data){
return data;
}
});
app.api.TweetsView = Backbone.View.extend({
el: $('#tweet-wrap'),
initialize: function(){
_.bindAll(this, 'render');
this.collection = new app.api.Tweets();
this.collection.bind('reset', function(tweets) {
tweets.each(function(){
this.render();
});
});
return this;
},
render: function() {
this.collection.fetch({
success: function(tweets){
var template = _.template($('#tweet-cloud').html());
$(tweets).each(function(i){
$(this).html(template({
'pic': tweets.models[i].attributes.user.profile_image_url,
'text': tweets.models[i].attributes.text,
'meta': tweets.models[i].attributes.created_at
}));
});
$(this.el).append(tweets);
}
});
}
});
new app.api.TweetsView();
}(jQuery));
그리고 내 현재 HTML과 템플릿은 다음과 같습니다 :
<div id="header-wrap"></div>
<div id="tweet-wrap"></div>
<script type="text/template" id="tweet-cloud">
<div class="tweet">
<div class="tweet-thumb"><img src="<%= pic %>" /></div>
<div class="tweet-text"><%= text %></div>
<div class="tweet-metadata"><%= meta %></div>
</div>
</script>
<script> if(!window.app) window.app = {}; </script>
가 나는 또한 테스트를위한 CodePen
사용할 수 있습니다
여기에 내 현재 백본 설정입니다. 모든 조언을 크게 주시면 감사하겠습니다.
질문은 질문 itself_ 유념하라 소스 코드를 포함해야합니다. 그것은 연결할 수 없습니다. –
@QPaysTaxes 요청에 따라 소스 코드가 질문에 추가되었습니다. – DaveyJake
IIFE 내의 FYI'this'는'Window' 객체처럼 보입니다.'(function() {} .call ({}))'과 같은 것을하지 않으면 IIFE 전체와'app.global' 참조가 나는 무언가를 놓치지 않는 한 무의미하다. ... –