summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Davis <thomasalwyndavis@gmail.com>2012-11-14 15:13:08 -0800
committerThomas Davis <thomasalwyndavis@gmail.com>2012-11-14 15:13:08 -0800
commit363601fc7c523b6d30bda284adec279e7b02649e (patch)
tree4f3e6a376236516bf0de7cc8512bd4928bebb903
parent3c2636d722c3ba4e1e547f729b87ae8bad38e984 (diff)
parent57e845675b14a15c5f42cb576a179b85e2b6bc44 (diff)
downloadbackbonetutorials-363601fc7c523b6d30bda284adec279e7b02649e.zip
backbonetutorials-363601fc7c523b6d30bda284adec279e7b02649e.tar.gz
backbonetutorials-363601fc7c523b6d30bda284adec279e7b02649e.tar.bz2
Merge pull request #63 from headwinds/gh-pages
Fixed Duplicated Medalists
-rw-r--r--examples/modular-backbone/js/router.js10
-rw-r--r--examples/modular-backbone/js/views/contributors/ContributorsListView.js49
-rw-r--r--examples/modular-backbone/js/views/contributors/ContributorsView.js11
3 files changed, 30 insertions, 40 deletions
diff --git a/examples/modular-backbone/js/router.js b/examples/modular-backbone/js/router.js
index 3c3973f..5621f2f 100644
--- a/examples/modular-backbone/js/router.js
+++ b/examples/modular-backbone/js/router.js
@@ -9,8 +9,6 @@ define([
'views/footer/FooterView'
], function($, _, Backbone, HomeView, ProjectsView, ContributorsView, FooterView) {
- var contributorsView;
-
var AppRouter = Backbone.Router.extend({
routes: {
// Define some URL routes
@@ -36,15 +34,9 @@ define([
app_router.on('route:showContributors', function () {
- // there is a problem here -- when it draws the first everything is fine
- // but when it returns to this view, it adds the items to the list again
- // even though the collection has the same number of models
- // why won't it empty the divs?! I can do it in the console...
- if ( String(contributorsView) !== "undefined" ) contributorsView.clearListView();
-
// Like above, call render but know that this view has nested sub views which
// handle loading and displaying data from the GitHub API
- contributorsView = new ContributorsView();
+ var contributorsView = new ContributorsView();
});
app_router.on('route:defaultAction', function (actions) {
diff --git a/examples/modular-backbone/js/views/contributors/ContributorsListView.js b/examples/modular-backbone/js/views/contributors/ContributorsListView.js
index 2bb4ec4..12d4bd5 100644
--- a/examples/modular-backbone/js/views/contributors/ContributorsListView.js
+++ b/examples/modular-backbone/js/views/contributors/ContributorsListView.js
@@ -21,13 +21,13 @@ define([
that.bind("reset", that.clearView);
},
- clearListView : function(){
+ resetMedalists : function(){
- console.log("clearing sub sub view");
+ var that = this;
- $("#gold-podium").empty();
- $("#silver-podium").empty();
- $("#bronze-podium").empty();
+ that.goldContributors = [];
+ that.silverContributors = [];
+ that.bronzeContributors = [];
},
@@ -37,7 +37,7 @@ define([
// something to do with how it's animating I think...not sure
var that = this;
- that.clearListView();
+ that.resetMedalists();
that.awardMedals(this.collection.models);
@@ -65,30 +65,32 @@ define([
achievement: '1 - 5 Contributions'
}
-
var data = {
contributors: that.goldContributors,
_: _,
podium : goldPodium
- };
+ };
+
+ // render bronze list
+ data.contributors = that.bronzeContributors;
+ data.podium = bronzePodium;
+
+ var bronzeCompiledTemplate = _.template( contributorListTemplate, data );
+ $("#bronze-podium").html( bronzeCompiledTemplate );
- // render gold list
- data.contributors = that.goldContributors;
- data.podium = goldPodium;
- var compiledTemplate = _.template( contributorListTemplate, data );
- $("#gold-podium").html( compiledTemplate );
-
// render silver list
data.contributors = that.silverContributors;
data.podium = silverPodium;
- var compiledTemplate = _.template( contributorListTemplate, data );
- $("#silver-podium").html( compiledTemplate );
- // render bronze list
- data.contributors = that.bronzeContributors;
- data.podium = bronzePodium;
- var compiledTemplate = _.template( contributorListTemplate, data );
- $("#bronze-podium").html( compiledTemplate );
+ var silverCompiledTemplate = _.template( contributorListTemplate, data );
+
+ $("#silver-podium").html( silverCompiledTemplate );
+
+ // render gold list
+ data.contributors = that.goldContributors;
+ data.podium = goldPodium;
+ var goldCompiledTemplate = _.template( contributorListTemplate, data );
+ $("#gold-podium").html( goldCompiledTemplate );
that.animate();
@@ -143,8 +145,6 @@ define([
var that = this;
- console.log("animating...");
-
$("#gold-podium").hide();
$("#silver-podium").hide();
$("#bronze-podium").hide();
@@ -172,10 +172,7 @@ define([
$( animateId ).delay(bronzeDelayCount).slideDown('slow');
bronzeDelayCount += bronzeDelayInc;
});
-
- console.log(bronzeDelayCount);
-
// animate in silver
$("#silver-podium").find(".base").hide();
$("#silver-podium").find(".base").slideDown('slow').delay(bronzeDelayCount);
diff --git a/examples/modular-backbone/js/views/contributors/ContributorsView.js b/examples/modular-backbone/js/views/contributors/ContributorsView.js
index e05e5a5..7292d93 100644
--- a/examples/modular-backbone/js/views/contributors/ContributorsView.js
+++ b/examples/modular-backbone/js/views/contributors/ContributorsView.js
@@ -7,7 +7,7 @@ define([
'text!templates/contributors/contributorsTemplate.html'
], function($, _, Backbone, ContributorsCollection, ContributorsListView, contributorsTemplate){
- var contributorsListView;
+ //var contributorsListView;
var ContributorsView = Backbone.View.extend({
@@ -21,15 +21,16 @@ define([
that.render();
}
- this.collection = new ContributorsCollection([]);
- this.collection.fetch({ success : onDataHandler, dataType: "jsonp" });
-
+ that.collection = new ContributorsCollection([]);
+ that.collection.fetch({ success : onDataHandler, dataType: "jsonp" });
+
},
render: function(){
$('.menu li').removeClass('active');
$('.menu li a[href="'+window.location.hash+'"]').parent().addClass('active');
+
var total_contributions = this.getTotalContributions(this.collection.models);
var total_contributors = this.collection.models.length;
@@ -41,7 +42,7 @@ define([
this.$el.html( compiledTemplate );
// sub view
- contributorsListView = new ContributorsListView({ collection: this.collection});
+ var contributorsListView = new ContributorsListView({ collection: this.collection});
contributorsListView.render();
},