Prechádzať zdrojové kódy

Commit 12-3: Refactored postsLists route into a RouteController.

Frederic G. MARAND 9 rokov pred
rodič
commit
928f12edb9
2 zmenil súbory, kde vykonal 25 pridanie a 18 odobranie
  1. 3 1
      .jshintrc
  2. 22 17
      lib/router.js

+ 3 - 1
.jshintrc

@@ -128,7 +128,8 @@
       "Random": false,
       "_": false,               // Underscore.js
       "$": false,               // jQuery
-      "Router": false,           // iron-router
+      "RouteController": false, // iron-router
+      "Router": false,          // iron-router
 
       // Microscope globals
       // - Collections
@@ -136,6 +137,7 @@
       "Errors": true,
       "Mongo": true,
       "Notifications": true,
+      "PostsListController": true,
       "Posts": true,
 
       // - Helpers

+ 22 - 17
lib/router.js

@@ -9,6 +9,28 @@ Router.configure({
   }
 });
 
+PostsListController = RouteController.extend({
+  template: 'postsList',
+  increment: 5,
+  postsLimit: function () {
+    return parseInt(this.params.postsLimit) || this.increment;
+  },
+  findOptions: function () {
+    return {
+      sort: { submitted: -1 },
+      limit: this.postsLimit()
+    };
+  },
+  waitOn: function () {
+    return Meteor.subscribe('posts', this.findOptions());
+  },
+  data: function () {
+    return {
+      posts: Posts.find({}, this.findOptions())
+    };
+  }
+});
+
 Router.route('/posts/:_id', {
   name: 'postPage',
   waitOn: function () {
@@ -39,25 +61,8 @@ Router.route('/submit', {
 // template par défaut.
 Router.route('/:postLimit?', {
   name: 'postsList',
-  waitOn: function () {
-    var limit = parseInt(this.params.postLimit) || 5;
-    return Meteor.subscribe('posts', {
-      sort: { submitted: -1 },
-      limit: limit
-    });
-  },
-  data: function () {
-    var limit = parseInt(this.params.postLimit) || 5;
-    return {
-      posts: Posts.find({}, {
-        sort: { submitted: -1 },
-        limit: limit
-      })
-    };
-  }
 });
 
-
 var requireLogin = function () {
   if (!Meteor.user()) {
     if (Meteor.loggingIn()) {